这里提供三种实现方式:
实现代码
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.DecimalFormat
、String.format
都符合四舍五入,java.math.BigDecimal
既支持四舍五入,也支持其他;
4.java.text.DecimalFormat
、String.format
返回的是String类型;
5.String.format("%.2f",number)
可以改为String.format("%.3f",number)
等从而保留想要的小数位数。
最新评论
我的是ipv4网络,如何使用直播源啊!
我今天试了,不想啊,我的是新疆昌吉移动的网络。
收不到验证码电报
现在充值29起了