优米格
分享有营养的

Java中保留小数(精确到小数点几位)

BraUndress.png

这里提供三种实现方式:

实现代码

import java.math.BigDecimal;
import java.text.DecimalFormat;

/**
 * @author 四个空格-https://www.yomige.org/
 */
public class JavaSetScale {
    public static void main(String[] args) {
        double number = 0.125400;
        DecimalFormat df = new DecimalFormat("0.00");
        BigDecimal bd=new BigDecimal(number);
        System.out.println("1.使用java.text.DecimalFormat:" +df.format(number));
        System.out.println("2.使用String.format:" +String.format("%.2f",number));
        System.out.println("3.使用java.math.BigDecimal:" +bd.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());

    }
}

打印结果:

1.使用java.text.DecimalFormat:0.13
2.使用String.format:0.13
3.使用java.math.BigDecimal:0.13

扩展

示例代码1:


/** * @author 四个空格-https://www.yomige.org/ */ public class JavaSetScale { public static void main(String[] args) { double number = 0.00225400; DecimalFormat df = new DecimalFormat("0.00"); System.out.println("1.使用new DecimalFormat(\"0.00\"):" +df.format(number)); df = new DecimalFormat("#.##"); System.out.println("2.使用new DecimalFormat(\"#.##\"):" +df.format(number)); } } 结果: 1.使用new DecimalFormat("0.00"):0.00 2.使用new DecimalFormat("#.##"):0

1.写法DecimalFormat df = new DecimalFormat("0.00"),不管传入的任何值,均保留两位小数;
2.写法DecimalFormat df = new DecimalFormat("#.##"),则保留小数点后面不为0的两位小数,这种写法不能保证保留2为小数,但能保证最后一位数不为0;
3.java.text.DecimalFormatString.format都符合四舍五入,java.math.BigDecimal既支持四舍五入,也支持其他;
4.java.text.DecimalFormatString.format返回的是String类型;
5.String.format("%.2f",number)可以改为String.format("%.3f",number)等从而保留想要的小数位数。

赞(0)
未经允许禁止转载:优米格 » Java中保留小数(精确到小数点几位)

评论 抢沙发

合作&反馈&投稿

商务合作、问题反馈、投稿,欢迎联系

广告合作侵权联系