我有一个 DECIMAL(18,3)字段,我使用触发器乘以12。使用任何计算器将返回例如644.8 * 12 = 7737.6。但MySQL返回7738.什么给出了? 触发:
SET NEW.Perannum = NEW.Wage * 12;
答案 0 :(得分:4)
尝试乘以12.00以确保十进制值*十进制值...
答案 1 :(得分:0)
你必须了解它的数学。 “舍入”总是意味着在下一个位置 - 向上或向下转到最近的小数点。 例如,如果您的结果需要精确到0小数点且计算结果为.5或更小,它将向下舍入。如果计算大于.5,它将向上舍入。 您正在寻找的是“截断”,这意味着“抛弃额外的剩余部分”。