保留两位小数,不四舍五入
方法一:
public static String formatDecimal (double value){
final DecimalFormat formater = new DecimalFormat();
formater.setMaximumFractionDigits(2);
formater.setGroupingSize(0);
formater.setRoundingMode(RoundingMode.FLOOR);
System.out.println(formater.format(3.1415926));
String result = formater.format(3.1415926);
return result;
}
方法二:
public static String calculateProfit(double doubleValue) {
// 保留4位小数
DecimalFormat df = new DecimalFormat("0.0000");
String result = df.format(doubleValue);
// 获取小数 . 号第一次出现的位置
int inde = firstIndexOf(result, ".");
// 字符串截断
return result.substring(0, inde + 3);
}
public static int firstIndexOf(String str, String pattern) {
for (int i = 0; i < (str.length() - pattern.length()); i++) {
int j = 0;
while (j < pattern.length()) {
if (str.charAt(i + j) != pattern.charAt(j))
break;
j++;
}
if (j == pattern.length())
return i;
}
return -1;
}
保留两位小数,四舍五入:
public static String formatDouble(String value) {
DecimalFormat df = new DecimalFormat("#0.00");
String st=df.format(Double.valueOf(value));
return st;
}
注意:
new DecimalFormat("#0.00"); new DecimalFormat("0.00");
区别:最终结果没有区别,#表示如果不存在则显示为空,0表示如果没有则该位补0.