【问题标题】:SQL query displaying float with comma as separator instead of "."SQL 查询显示浮点数,以逗号作为分隔符,而不是“。”
【发布时间】:2016-03-01 20:16:01
【问题描述】:

当我执行以下操作时:

    declare @x float = 1.5
    select @x

显示的结果是1,5,而不是1.5

但是当我print @x 时,它显示了正确的结果:1.5"

当我查询带有浮点字段的表时也会发生这种情况。

我使用的是sql server 2008 r2,服务器和数据库的排序规则是sql_latin1_cp1_cs_as。

查询浮点字段时是否有设置正确分隔符的配置? 我不想在我的所有查询中都进行强制转换或替换。

【问题讨论】:

    标签: sql sql-server casting floating-point


    【解决方案1】:

    绝对不要尝试使用REPLACE 来解决这个问题。显示问题应尽可能在显示层中处理。如果你有一个浮点数,把它当作一个浮点数,而不是一个字符串。

    这些设置应该来自您计算机的区域设置。我相信有一个错误导致十进制数据类型不使用该设置(小数点始终使用句点),但对于浮点数和货币,它应该使用区域设置。如何设置这些将取决于您的确切操作系统,但如果您在“开始”菜单中搜索“更改数字格式”或“区域设置”之类的内容,您应该能够找到它。

    【讨论】:

    • 我正在运行 Windows 7。我查看了控制面板 -> 区域和语言 -> 其他设置 -> 数字 -> 十进制符号 -> 从“,”更改为“。”然后回到SQL,它工作正常!
    猜你喜欢
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    相关资源
    最近更新 更多