如何在SQL中将int转换为十进制

时间:2017-12-13 09:26:45

标签: sql sql-server

我正在努力解决一个问题,即我有一个文本框,可以接受任何类型的数据,但我想将数据转换为 decimal(12,9) ,或者任何数据类型都可以接受这个以数字为例 42.56926437219384

这是用户可以输入任何类型的数据(如字符或整数

)的问题

第一种情况我想处理如果数据输入为整数:

DECLARE @num DECIMAL(12,9) = 444444444444444
SELECT CONVERT(DECIMAL(12,9),@num)

我认为如果是字符将在解决方案中处理它并为文本框分配验证。

我该如何处理整数部分?

1 个答案:

答案 0 :(得分:4)

当您将其指定为DECIMAL(12,9)时,这意味着您的号码最多可以包含12位数字(不包括。),其中9位数字将位于小数部分之后。这意味着您可以存储的最大值是 999.999999999

在上面的示例场景中,该数字有15个整数部分,这些部分太高于变量的范围,因为您可以执行以下任一操作

  1. 将变量的大小从 DECIMAL(12,9) 更改为更高的整数精度,例如 DECIMAL(25,9)
  2. 在您的应用程序上添加验证以限制用户可以输入的字符数