用BigDecimal类型来存储金额
2018-08-14 本文已影响0人
3d7be2e0434d
1.金额在用什么类型来存储呢?如果用double,来看一个例子
double用来计算此时输出的结果是 0.09999999999999998,原因是浮点数都有取值范围, 都有精度范围. 浮点数与通常使用的小数不同, 使用中, 其结果往往难以确定.所以金额绝对不能用double或者float数据类型来存储!!!
2.BigDecimal进行加减乘除
在java中有一种数据类型为BigDecimal,可以用它来存储有关金额的数据。(java.math.BigDecimal)
具体用法如下:
BigDecimal的用法输出结果为:0.05 ,-0.01,0.0006 ,1.5
此时需要注意的是,当使用divide方法时,如果除不尽会报错!!!
3.BigDecimal数据类型比较大小
BigDecimal数据类型比较大小时用compareTo方法,小于时会返回-1,等于时会返回0,大于时会返回1。
4.BigDecimal四舍五入
具体用法如下:
BigDecimal的setScale方法BigDecimal对象四舍五入时使用setScale方法,此方法在计算税费时非常有用,因为小数点位数很多,需要保留多少位数。
5.mysql中金额字段使用的数据类型
在mysql数据库中通常使用decimal来保存金额类的数据,如可以使用 decimal(18,2),decimal(18,4)。此外还要注意的就是默认值, 要写成0.00, 不要用默认的NULL!!!