java_double保留幾位小數(shù)(double如何保留兩位
最近使用Java開(kāi)發(fā)中遇到一些場(chǎng)景需要對(duì)數(shù)值進(jìn)行小數(shù)點(diǎn)精確度的限制。如保留小數(shù)點(diǎn)后四位,索性梳理一下相關(guān)的方法,大概六種方式,直接貼代碼,如下:
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class TestDemo{
public static void main(String] args) {
double num1 = 100.13145;
//保留4位小數(shù) 100.1315 四舍五入
BigDecimal bigDecimal = new BigDecimal(num1);
double num2 = bigDecimal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(num2);
// 保留4位小數(shù) 100.1315 四舍五入
DecimalFormat decimalFormat = new DecimalFormat("#.0000");
String stringValue = decimalFormat.format(num1);
System.out.println(stringValue);
Double doubleValue = Double.parseDouble(decimalFormat.format(num1));
System.out.println(doubleValue);
// 保留4位小數(shù) 100.1315 四舍五入
System.out.println(String.format("%.4f", num1));
// 保留4位小數(shù) 100.1315 四舍五入
Double get_double = (double) ((Math.round(num1 * 10000)) / 10000.0);
System.out.println(get_double);
// 保留4位小數(shù) 100.1315
NumberFormat numberFormat = NumberFormat.getNumberInstance();
numberFormat.setMaximumFractionDigits(4);
System.out.println(numberFormat.format(num1));
// 保留4位小數(shù) 100.1314
float num3 = (float) 100.13145;
float a = (float) (Math.round(num3 * 10000)) / 10000;
System.out.println(a);
}
}