在MySQL中,将1转换为十进制返回0.9999而不是1.0000

前端之家收集整理的这篇文章主要介绍了在MySQL中,将1转换为十进制返回0.9999而不是1.0000前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

MySQL中将1转换为十进制时,我期待1.0000,但输出为0.9999.

到底发生了什么?

SELECT CAST(1 AS DECIMAL(4,4))
最佳答案
超出范围

例如,DECIMAL(5,2)存储五位数和两位小数的任何值,其范围为-999.99到999.99.

SELECT CAST(1 AS DECIMAL(5,4)) -> 1.0000
SELECT CAST(1 AS DECIMAL(4,3)) -> 1.000
SELECT CAST(0.0001 AS DECIMAL(4,4)) -> 0.0001
SELECT CAST(0.00001 AS DECIMAL(4,4)) -> 0.0000
SELECT CAST(12345 AS DECIMAL(5,4)) -> 9.9999

更多信息:

https://dev.mysql.com/doc/refman/5.7/en/precision-math-decimal-characteristics.html
https://dev.mysql.com/doc/refman/5.7/en/fixed-point-types.html

原文链接:https://www.f2er.com/mysql/433291.html

猜你在找的MySQL相关文章