问题描述
CREATE TABLE IMPORTES (IMPORTE FLOAT)
然后我按照以下说明进行操作:
INSERT INTO IMPORTES (IMPORTE) VALUES (15226.25)
INSERT INTO IMPORTES (IMPORTE) VALUES (9999.25)
INSERT INTO IMPORTES (IMPORTE) VALUES (5226.25)
当我执行SELECT CAST(IMPORTE AS NVARCHAR(40))
时,最大值取整,使得15226.25
变成15226.3
。这是为什么?如何制作Cast,但仍然获得相同的价值?
解决方法
根据CAST
和CONVERT
的文档here,对于float
和real
表达式,{{1}的style
自变量}}默认为CONVERT
,最多返回6位数字。显然,0
实际上是在使用此默认值“在幕后”调用CAST
。获得一致结果的唯一方法是,例如,如果将CONVERT
的数据类型更改为IMPORTE
,例如,如果您始终知道自己只有2位小数位。