如果数值是200.3456',它应该被格式化为
200.34'。
如果是200
,那么应该是200.00
。
如果你只想打印一个小数点后有两个数字的 "双 "字,可以使用这样的方法。
double value = 200.3456;
System.out.printf("Value: %.2f", value);
如果你想把结果放在String
中,而不是打印到控制台,使用String.format()
,参数相同。
String result = String.format("%.2f", value);
或者使用 "DecimalFormat "类。
DecimalFormat df = new DecimalFormat("####0.00");
System.out.println("Value: " + df.format(value));
最简单的方法,是做一个这样的技巧。
double val = ....;
val = val*100;
val = Math.round(val);
val = val /100;
如果数值从200.3456开始,然后到20034.56,然后被四舍五入到20035,然后我们除以200.34。
如果你想总是向下四舍五入,我们可以通过转换为一个int来截断。
double val = ....;
val = val*100;
val = (double)((int) val);
val = val /100;
这种技术在大多数情况下都是有效的,因为对于非常大的双数(正数或负数),它可能会溢出。但如果你知道你的值将在一个适当的范围内,那么这应该对你有用。