Java.text
类 DecimalFormat
java.lang.Object
java.text.Format
java.text.NumberFormat
java.text.DecimalFormat
void setMaximumFractionDigits(int newValue) 设置某个数的小数部分中所允许的最大数字位数。
void setMinimumFractionDigits(int newValue) 设置某个数的小数部分中所允许的最小数字位数。
//Main.java
import java.util.*;
import java.text.*;
public class Main{
public static void main(String [] args){
try{
Scanner input=new Scanner(System.in);
double n=input.nextDouble();
System.out.println(SicenToComm(n));
}catch(Exception e){
}
}
public static String SicenToComm(double value) { //保留小数点后3位(四舍五入),且不按科学计数法输出
String retValue = null;
DecimalFormat df = new DecimalFormat();
df.setMinimumFractionDigits(3);
df.setMaximumFractionDigits(3);
retValue = df.format(value);
retValue = retValue.replaceAll(",", "");
return retValue;
}
}
//测试用例:
1。E:\java\lilongfei\java精度问题>java Main
45.2222
45.222
2。E:\java\lilongfei\java精度问题>java Main
45.000000000000
45.000
3。E:\java\lilongfei\java精度问题>java Main
45.33366666
45.334
4。E:\java\lilongfei\java精度问题>java Main
45555555555555
45555555555555.000
5。E:\java\lilongfei\java精度问题>java Main
0.0000006
0.000