不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。
虽然双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,
1. 在商业计算中要用java.math.BigDecimal,用来对超过16位有效位的数进行精确的运算。
BigDecimal创建的是对象,不能使用+、-、*、/等直接对其对象进行数学运算,而是调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。
例如:
输出:
2. 构造器描述:
在涉及到double数据时,建议优先使用String构造方法,即<code>Double.toString(double)</code><code>转成String</code>
例子:
结果:
3. 方法描述:
4. 注意divide方法:
divide(BigDecimal,保留小数点后几位小数,舍入模式)
舍入模式:
5. 使用: