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 回答