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);