Java如何保留指定小数位数

Java保存指定位小数

问题:需要将一个小数d保留n位输出

方法一:String.format

double d = 123.212378;
String s = String.format("%.nf", d);
double v = Double.parseDouble(s);

将n替换为小数点后的位数即可,此方法是会四舍五入的。

方法二:DecimalFormat

double d = 123.212378;
java.text.DecimalFormat df =new java.text.DecimalFormat("#.000");  
String s = df.format(d);
double v = Double.parseDouble(s);

此方法也是是会四舍五入的,方式一更简洁

方法三:NumberFormat

double d = 123.212378;
NumberFormat ddf1=NumberFormat.getNumberInstance() ;
ddf1.setMaximumFractionDigits(3);
String s = ddf1.format(d) ;

如果不用四舍五入,那么直接将小数转换为字符串,再对字符串进行截取即可

double d = 123.21573;
String s = String.valueOf(d);
//保留小数点后3位,非四舍五入
String substring = s.substring(0, s.indexOf('.') + 4);
double v = Double.parseDouble(substring);

版权声明:本文为hhhghh_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。