假设我有一个值12345678,数字说x = 2,我希望最终输出为123456.78,如果x的值为4,则最终输出为1234.5678。
请告诉我如何才能实现这一目标?
答案 0 :(得分:10)
鉴于您正在处理移动十进制点,我可能会使用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
答案 1 :(得分:3)
BigInteger d = new BigInteger("12345");
BigDecimal one = new BigDecimal(d, 3);//12.345
BigDecimal two = new BigDecimal(d, 2);//123.45
答案 2 :(得分:2)
试试这个:
String data = "12345678";
StringBuilder builder = new StringBuilder(data);
int x = 4;
builder.insert(builder.length() - x, ".");
System.out.println(builder);
答案 3 :(得分:1)
将值除以10加到功率x。