4

値が12345678で、数値がx = 2で、最終出力を123456.78にし、xの値が4の場合、最終出力は1234.5678になるとします。

どうすればこれを達成できるか教えてください。

4

4 に答える 4

12

あなたが小数点のシフトを扱っていることを考えると、私はおそらく以下を使用するでしょう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
于 2013-03-25T07:00:57.020 に答える
6
BigInteger d = new BigInteger("12345");
BigDecimal one = new BigDecimal(d, 3);//12.345
BigDecimal two = new BigDecimal(d, 2);//123.45
于 2013-03-25T07:09:35.167 に答える
2

これを試してみてください:

String data = "12345678";
    StringBuilder builder = new StringBuilder(data);
    int x = 4;
    builder.insert(builder.length() - x, ".");

    System.out.println(builder);
于 2013-03-25T07:00:10.407 に答える
1

値を10で割ってxの累乗にします。

于 2013-03-25T06:59:49.580 に答える