我有以下代码
<html>
<head></head
<body>
<!-- this is my template generated with Symfony -->
<div ...>
<ul>
<li><angularComponent></angularComponent></li>
<li><angularComponent></angularComponent></li>
</ul>
</div>
</body>
</html>
form.format(f)返回字符串,但我需要它是浮点数。 我想设置我正在打印的数据的精度而不改变数据类型,即浮点数,我该怎么做。
答案 0 :(得分:2)
float
在打印方面没有精确度。这只是一个价值。
您可以做的是对结果进行舍入,以便在打印结果时不超过2位小数。
public static float round2(float f) {
final float factor = 1e2f;
if (f < Integer.MIN_VALUE/factor || f > Integer.MAX_VALUE/factor)
return f;
return Math.round(f * factor) / factor;
}
注意:float
的精确度非常差,使用double
或考虑BigDecimal
可以更好地控制它打印的小数位数。 / p>
要围绕double
,您可以使用
public static double round2(double f) {
final double factor = 1e2;
if (f < Long.MIN_VALUE/factor || f > Long.MAX_VALUE/factor)
return f;
return Math.round(f * factor) / factor;
}
答案 1 :(得分:1)
您可以使用BigDecimal
(另请参阅Javadoc)
float f = 125.0f;
BigDecimal value = new BigDecimal(f).setScale(2, RoundingMode.HALF_UP);
System.out.println(value.floatValue());