我写了这段代码:
double sums = Math.round(sum) * 100.00 / 100.00;
我只在小数点后得到一个0
(例如10.0
),但我想要10.00
。
有什么不对吗?
答案 0 :(得分:1)
我怀疑你打算
double sums = Math.round(sum * 100) / 100.0;
这会将数字四舍五入到小数点后两位。
我只在小数点后得到一个0(例如10.0),但我想要10.00。
号码10.0
== 10.00
除格式外没有区别。您可以格式化String并同时对其进行舍入。
double sum = 9.999;
String fmt = String.format("%.2f", sum);
// fmt = "10.00"
一个数字只是一个数字,它没有固有的格式。
答案 1 :(得分:0)
使用String.format
确保只获得您想要的数字
例如,如果我写
public static void main(String[] args) {
double sum=23.90;
double sums = Math.round(sum * 100) / 100.0;
System.out.println(sums);
}
它会给我输出
最多一个小数点
即23.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
但是使用String格式,您将始终确定要打印多少小数
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 .. 但它有圆角问题 所以更好的做法是首先使用它转换为字符串,然后修剪字符