mysql sum decimal数据会不精确吗?

3b6akqbq  于 12个月前  发布在  Mysql
关注(0)|答案(1)|浏览(263)

我用的是mysql5.7,对一个decimal类型的列求和时有精度问题吗?

lskq00tm

lskq00tm1#

在MySQL中,DECIMAL数据类型旨在提供精确的十进制计算而不会损失精度。因此,在对十进制值求和时,只要计算的精度和范围在指定的范围内,MySQL就可以确保准确的结果。
在本例中,a列定义为DECIMAL(10,8),这意味着它可以存储总共10位的十进制值,其中8位保留用于小数部分(小数点后)。
对于您提供的值:

1.23456789
0.00000001

当您对这两个值执行求和操作时,MySQL将正确计算精确的和:

SELECT SUM(a) FROM router;

结果将为1.23456790,保持为a列定义的精度和比例。
因此,在MySQL 5.7中,只要被求和的值的总精度和小数位数不超过指定的限制,对十进制类型的列求和时就不应该有任何精度问题。

相关问题