声明@decimal decimal(4,3) = 10.0
declare @decimal decimal(4,3) = 10.0
任何人都可以告诉我为什么这个:声明@decimal decimal(4,3) = 10 在 SQL 服务器中给我一个错误:
msg 8115 level 16 state 8 line 1 arithmetic overflow error converting int to data type numeric
即使这个声明 @decimal decimal(4,3) = 10.0 也给出了这个错误:
msg 8115 level 16 state 8 line 1 arithmetic overflow error converting numeric to data type numeric
提前致谢
一个小数(4,3)共有4位,小数点后3位。请参阅 SQL 服务器在线文档中的 decimal and numeric,特别是关于精度和比例的内容。
它将保存从 -9.999 到 +9.999 的值。要支持值 10,您可以使用 decimal(5,3).
正如 Rhys 所回答的,一个 decimal(m,n) 总共可以存储 m 位数字,小数点右边有 n 位数字。
所以 Decimal(4,3) 的可能取值范围是 -9.999 到 +9.999,总共 4 位,小数点右边 3 位。要存储 10,您必须使用 Decimal(5,3) 但这将允许值高达 99.999
任何人都可以告诉我为什么这个:声明@decimal decimal(4,3) = 10 在 SQL 服务器中给我一个错误:
msg 8115 level 16 state 8 line 1 arithmetic overflow error converting int to data type numeric
即使这个声明 @decimal decimal(4,3) = 10.0 也给出了这个错误:
msg 8115 level 16 state 8 line 1 arithmetic overflow error converting numeric to data type numeric
提前致谢
一个小数(4,3)共有4位,小数点后3位。请参阅 SQL 服务器在线文档中的 decimal and numeric,特别是关于精度和比例的内容。
它将保存从 -9.999 到 +9.999 的值。要支持值 10,您可以使用 decimal(5,3).
正如 Rhys 所回答的,一个 decimal(m,n) 总共可以存储 m 位数字,小数点右边有 n 位数字。
所以 Decimal(4,3) 的可能取值范围是 -9.999 到 +9.999,总共 4 位,小数点右边 3 位。要存储 10,您必须使用 Decimal(5,3) 但这将允许值高达 99.999