这里提供三种实现方式:
实现代码
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)
等从而保留想要的小数位数。
最新评论
本来在正常下载,突然就不能下载,并出现报错:a socket operation was attempted to an unreachable network。请问是什么原因呢
试了,还是不行,能不能更新一下
试了,确实不行,能不能更新一下
也推荐一下我自己写的 https://twitdown.com