我试图在SQL Server中找出一列的十进制数据类型。我需要能够存储像15.5,26.9,24.7,9.8等值

我将decimal(18,0)赋值给列数据类型,但这不允许我存储这些值。

正确的做法是什么?


当前回答

request.input("name", sql.Decimal, 155.33)              // decimal(18, 0)
request.input("name", sql.Decimal(10), 155.33)          // decimal(10, 0)
request.input("name", sql.Decimal(10, 2), 155.33)       // decimal(10, 2)

其他回答

你可以试试这个

decimal(18,1)

数字的长度应该是18。小数点后的数字长度只能是1,不能超过1。

DECIMAL(18,0)允许小数点后面有0位数字。

使用DECIMAL(18,4)之类的东西来代替,这样就可以了!

总共有18位,其中小数点后4位(小数点前14位)。

Decimal的设置是它的精度和刻度,或者在普通语言中,一个数字可以有多少位,以及小数点的右边有多少位。

所以如果你把圆周率转换成十进制(18,0),它将被记录为3?

如果你把圆周率转换成十进制(18,2),它将被记录为3.14?

如果你把圆周率输入十进制(18,10),记录为3.1415926535。

你应该这样使用is:

DECIMAL(m,a)

M是小数的总位数。

A是小数点后的最大位数。

http://www.tsqltutorials.com/datatypes.php有所有数据类型的描述。

其他答案都是对的。假设你的例子反映了所有的可能性,你想要的是DECIMAL(3,1)。或者,DECIMAL(14,1)将允许总共14个数字。你的工作是思考什么是足够的。