为什么在将DECIMAL字段相乘时,答案是四舍五入的?

时间:2012-06-07 15:53:12

标签: mysql

我有一个 DECIMAL(18,3)字段,我使用触发器乘以12。使用任何计算器将返回例如644.8 * 12 = 7737.6。但MySQL返回7738.什么给出了? 触发:

SET NEW.Perannum = NEW.Wage * 12;

2 个答案:

答案 0 :(得分:4)

尝试乘以12.00以确保十进制值*十进制值...

答案 1 :(得分:0)

你必须了解它的数学。 “舍入”总是意味着在下一个位置 - 向上或向下转到最近的小数点。 例如,如果您的结果需要精确到0小数点且计算结果为.5或更小,它将向下舍入。如果计算大于.5,它将向上舍入。 您正在寻找的是“截断”,这意味着“抛弃额外的剩余部分”。