如何解决SQL:将Float字段强制转换为NVARCHAR
我有一个带有一个浮点数字段的表:
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位小数位。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。