値が12345678で、数値がx = 2で、最終出力を123456.78にし、xの値が4の場合、最終出力は1234.5678になるとします。
どうすればこれを達成できるか教えてください。
あなたが小数点のシフトを扱っていることを考えると、私はおそらく以下を使用するでしょうBigDecimal
:
long integral = 12345678L;
int x = 4; // Or 2, or whatever
BigDecimal unscaled = new BigDecimal(integral);
BigDecimal scaled = unscaled.scaleByPowerOfTen(-x);
System.out.println(scaled); // 1234.5678
BigInteger d = new BigInteger("12345");
BigDecimal one = new BigDecimal(d, 3);//12.345
BigDecimal two = new BigDecimal(d, 2);//123.45
これを試してみてください:
String data = "12345678";
StringBuilder builder = new StringBuilder(data);
int x = 4;
builder.insert(builder.length() - x, ".");
System.out.println(builder);
値を10で割ってxの累乗にします。