小数点java
我写了这段代码:小数点java,java,decimal,Java,Decimal,我写了这段代码: double sums = Math.round(sum) * 100.00 / 100.00; 我在小数点后只得到一个0(例如10.0),但我想要10.00 有什么不对劲吗?我想你是有意的 double sums = Math.round(sum * 100) / 100.0; 这将把数字四舍五入到小数点后2位 我只得到小数点后的一个0(例如10.0),但我想要10.00 数字10.0==10.00除了格式之外没有区别。您可以格式化字符串并同时将其四舍五入 double
double sums = Math.round(sum) * 100.00 / 100.00;
我在小数点后只得到一个0
(例如10.0
),但我想要10.00
有什么不对劲吗?我想你是有意的
double sums = Math.round(sum * 100) / 100.0;
这将把数字四舍五入到小数点后2位
我只得到小数点后的一个0(例如10.0),但我想要10.00
数字10.0
==10.00
除了格式之外没有区别。您可以格式化字符串并同时将其四舍五入
double sum = 9.999;
String fmt = String.format("%.2f", sum);
// fmt = "10.00"
数字只是一个数字br,它没有固有的格式。使用
String.format
确保只获得所需的数字
例如,如果我写
public static void main(String[] args) {
double sum=23.90;
double sums = Math.round(sum * 100) / 100.0;
System.out.println(sums);
}
它将给我输出
小数点后一位以内
i、 e23.9
但是如果我把同样的代码改成
public static void main(String[] args) {
double sum=23.945;
double sums = Math.round(sum * 100) / 100.0;
System.out.println(sums);
}
我得到两个小数点的输出,即
23.95
但对于字符串格式,您将始终确定要打印多少个小数
public static void main(String[] args) {
double sum=23.945;
double sums = Math.round(sum * 100) / 100.0;
String fmt = String.format("%.1f", sums);
System.out.println(fmt);
}
输出24.0但它存在舍入问题
因此,更好的做法是先将其转换为字符串,然后修剪不重复的字符。。。