在MySQL中使用十进制时,值(5,3)
是否使得最大数字为99.999
?如果不是,我该如何指定?我的号码是货币所以我需要使用小数,但它不应超过99,它必须有3位小数。
答案 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)
您指定的方法应该有效。我没有看到任何问题。