2010-07-07 56 views
3

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

回答

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如何映射十进制数据类型。如果它映射到一个整数,则会丢失小数;如果它映射到浮点数(float,double),则可能会失去精度;如果它映射到Decimal(C#/ Java),那么只要您的值在数据类型的范围内,您就会得到确切的表示形式。

+0

谢谢,但要明确一件事,小数点后面是否有小数点后三位,还是只有一个或两个?同样,数字是否是5位数字,或者是5是最大值? – ubiquibacon 2010-07-07 19:59:18

1

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

+1

感谢您的保证@Patrick,但我一直在寻找更多的解释。 – ubiquibacon 2010-07-07 19:59:42