假设我有一个值为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);
String
类型的数据,你必须一遍又一遍地解析它。 - joey rohan
12345678
是一个int
)。 - NPEBigDecimal
是Java中浮点十进制数的表示方式,就像System.Decimal
是.NET中的表示方式一样。 - Jon Skeet