如果值为200.3456
,则应将其格式化为200.34
。如果它是200
,那么它应该是200.00
。
发布于 2010-05-11 14:49:31
如果您只想打印小数点后有两位数的double
,请使用如下所示:
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));
发布于 2012-03-13 22:39:33
我认为这更简单:
double time = 200.3456;
DecimalFormat df = new DecimalFormat("#.##");
time = Double.valueOf(df.format(time));
System.out.println(time); // 200.35
请注意,这实际上将为您进行舍入,而不仅仅是格式化。
发布于 2010-05-11 14:43:24
最简单的方法就是像这样做一个小把戏;
double val = ....;
val = val*100;
val = Math.round(val);
val = val /100;
如果val从200.3456开始,则为20034.56,然后四舍五入为20035,然后除以得到200.34。
如果你想总是四舍五入,我们总是可以通过转换为int来截断:
double val = ....;
val = val*100;
val = (double)((int) val);
val = val /100;
此技术适用于大多数情况,因为对于非常大的双精度(正或负),它可能会溢出。但是,如果您知道您的值将在适当的范围内,那么这对您来说应该是有效的。
https://stackoverflow.com/questions/2808535
复制相似问题