MySQL十进制澄清

时间:2010-07-07 04:00:10

标签: mysql decimal

在MySQL中使用十进制时,值(5,3)是否使得最大数字为99.999?如果不是,我该如何指定?我的号码是货币所以我需要使用小数,但它不应超过99,它必须有3位小数。

2 个答案:

答案 0 :(得分:5)

decimal (5,3)是定义范围为-99.999 .. 99.999的字段的标准SQL方法。

请注意,对于MySQL,如果您尝试插入超出范围的值,MySQL将自动将值截断为最接近的边界值(在本例中为99.999或-99.999),而不会抛出错误。

<强>加

在这种情况下,存储的数据最多为5个数字,小数点右侧的数字为3。如果您插入1.23之类的数字,则会将其存储为1.230;同样1将存储为1.000。如果您插入12.3456,则会将其向上舍入为12.346;如果您插入12.0001,则会向下舍入为12.000

当列返回到程序时,确切的表示形式将取决于数据库API如何映射十进制数据类型。如果它映射到一个整数,你将失去小数;如果它映射到浮点数(浮点数,双精度数),则可能会失去精度;如果它映射到Decimal(C#/ Java),那么只要您的值在数据类型的范围内,您就会获得精确的表示。

答案 1 :(得分:1)

您指定的方法应该有效。我没有看到任何问题。