【转】Java保留固定小数位的4种方法

时间:2021-12-08 15:27:10
package com.test;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class Main {
/**
* 测试用例为保留8位
* */
double f = 1234.1234567898789;
/**
* 由于 BigDecimal 对象是不可变的,此方法的调用不会 导致初始对象被修改;
* newScale - 要返回的 BigDecimal 值的标度;
* roundingMode - 要应用的舍入模式;
* ROUND_HALF_UP 舍入模式为四舍五入;
* */
public void method_01() {
BigDecimal bg = new BigDecimal(f);
double f1 = bg.setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);
}
/**
* DecimalFormat转换最简便
*/
public void method_02() {
DecimalFormat df = new DecimalFormat("#.00000000");
System.out.println(df.format(f));
}
/**
* String.format打印最简便
*/
public void method_03() {
System.out.println(String.format("%.8f", f));
}
public void method_04() {
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(8);
System.out.println(nf.format(f));
}
public static void main(String[] args) {
Main test = new Main();
test.method_01();
test.method_02();
test.method_03();
test.method_04();
}
}
结果:
1234.12345679
1234.12345679
1234.12345679
1,234.12345679