BigDecimal在存储金额方面的使用二

大小比较

两个BigDecimal值怎么比较大小呢? 能用>或者<吗? 也不可以!

请看示例:

BigDecimal在存储金额方面的使用二_第1张图片

两个BigDecimal值比较使用compareTo方法, 比较结果有-1, 0, 1, 分别表示小于, 等于, 大于; 对于0, 可以使用BigDecimal.ZERO表示!

小数位数及四舍五入规则

在项目中, 涉及到税费的计算, 计算的结果可能是小数点后面十几位, 那么怎么进行结算呢? 这就需要四舍五入这种东东了.

请看示例:

BigDecimal在存储金额方面的使用二_第2张图片

其中setScale的第一个参数是小数位数, 这个示例是保留2位小数, 后面是四舍五入规则.

mysql数据库设计


BigDecimal在进行入库时, 数据库选择decimal类型, 长度可以自定义, 如18; 小数点我们项目中用的是2, 保留2位小数. 此外还要注意的就是默认值, 一定写成0.00, 不要用默认的NULL, 否则在进行加减排序等操作时, 会带来转换的麻烦!

`balance` decimal(18,2) DEFAULT '0.00' COMMENT '账户余额',

你可能感兴趣的:(BigDecimal在存储金额方面的使用二)