目前我正在使用 DecimalFormat 类来舍入双精度值
double d = 42.405;
DecimalFormat f = new DecimalFormat("##.00");
System.out.println(f.format(d));
output: 42.41;
我正在使用 Selenium 进行浏览器应用程序测试,因此根据浏览器,我需要对值进行四舍五入。
例如:
IE 将 42.405 四舍五入为 42.40,其他四舍五入为 42.41。但如果值类似于 42.403、42.406,那么我会看到所有浏览器之间的一致性。所以现在我必须在我的脚本中添加一个条件,这样如果浏览器是 IE,则应以这样的方式进行舍入:我应该得到 42.40,而对于其他浏览器应该得到 42.41。我怎样才能做到这一点?
您可以指定RoundingMode http://docs.oracle.com/javase/7/docs/api/java/math/RoundingMode.html为了DecimalFormatter http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html#setRoundingMode%28java.math.RoundingMode%29,但请根据您的需要选择它(我刚刚给出了一个使用的示例HALF_UP
).
double d = 42.405;
DecimalFormat f = new DecimalFormat("##.00");
f.setRoundingMode(RoundingMode.HALF_UP);
System.out.println(f.format(d)); // Prints 42.41
或者,您也可以使用BigDecimal http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html(如果你知道为什么我们通常会去BigDecimal
代替double
) 对于相同的。
double d = 42.405;
BigDecimal bd = new BigDecimal(d);
bd = bd.setScale(2, RoundingMode.HALF_UP);
System.out.println(bd.doubleValue()); // Prints 42.41
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)