BigDecimal类有3个toString方法,分别是toEngineeringString、toPlainString和toString,
从BigDecimal的注释中可以看到这3个方法的区别:
- toEngineeringString:有必要时使用工程计数法。工程记数法是一种工程计算中经常使用的记录数字的方法,与科学技术法类似,但要求10的幂必须是3的倍数
- toPlainString:不使用任何指数
- toString:有必要时使用科学计数法
不使用指数 | 科学记数法 | 工程记数法 |
2700 | 2.7 × 10³ | 2.7 × 10³ |
27000 | 2.7 × 10⁴ | 27 × 10³ |
270000 | 2.7 × 10⁵ | 270 × 10³ |
2700000 | 2.7 × 10⁶ | 2.7 × 10⁶ |
看看如下程序示例
1 2 3 4 5 6 7 8 9 10 |
import java.math.BigDecimal; public class BigDecimalDemo { public static void main(String[] args) { BigDecimal bg = new BigDecimal("1E11"); System.out.println(bg.toEngineeringString()); System.out.println(bg.toPlainString()); System.out.println(bg.toString()); } } |
输出
- 100E+9
- 100000000000
- 1E+11
+1
《BigDecimal的3个toString方法比较》有一个想法