方法一: String类自带的方法 String.format("%.2f", 1.2548); "%.2f"其中的数字决定保留几位
方法二: 格式化的方法
private static final java.text.DecimalFormat df = new java.text.DecimalFormat("0.00%"); private static final java.text.DecimalFormat df2 = new java.text.DecimalFormat("0.00"); public static String format(Double data) { synchronized (df) { return df.format(data); } } public static String format2(Double data) { synchronized (df2) { return df2.format(data); } }
方法三:Float a =1.23466643f;
int b = (int) (a*10000);
a =(float) b/10000;
System.out.println(a);
方法四:可以不四舍五入的保留小数点 方法原理是一位一位的获取 考虑到位数为0的特殊情况
double num =1;
Integer b =(int) (num*100000);
String a =b/100000+"."
+(b%100000>=10000?b%100000/10000:("0"))
+(b%10000>=1000?b%10000/1000:("0"))
+(b%1000>=100?b%1000/100:("0"))
+(b%100>=10?b%100/10:("0"+b%10));
System.out.println(a);