public class DoubleTest {
//保留两位小数第三位如果大于4会进一位(四舍五入)
double f = 6.23556;
/**
*使用精确小数BigDecimal
*/
public void fun1() {
BigDecimal bg = new BigDecimal(f);
/**
* 参数:
newScale - 要返回的 BigDecimal 值的标度。
roundingMode - 要应用的舍入模式。
返回:
一个 BigDecimal,其标度为指定值,其非标度值可以通过此 BigDecimal 的非标度值乘以或除以十的适当次幂来确定。
*/
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);
}
/**
* DecimalFormat转换最简便
*/
public void fun2() {
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(f));
}
/**
* String.format打印最简便
*/
public void fun3() {
System.out.println(String.format("%.2f", f));
}
/**
*使用NumberFormat
*/ public void fun4() {
NumberFormat nf = NumberFormat.getNumberInstance();
/**
* setMaximumFractionDigits(int newValue)
设置数的小数部分所允许的最大位数。
*/
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(f));
}
public static void main(String[] args) {
DoubleTest dt = new DoubleTest();
dt.fun1();
dt.fun2();
dt.fun3();
dt.fun4();
}
}
输出结果:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/198349.html原文链接:https://javaforall.cn