SQL Server:如何将浮点数格式化为字符串而没有逗号?

时间:2018-09-08 05:02:54

标签: sql sql-server string format sql-server-2017

我目前正在使用'N99'格式,这很不错,除了它添加了逗号之外。

是否可以使用格式不指定逗号?
还是我必须自己使用REPLACE删除逗号? (速度较慢,但​​可以接受。)

编辑:我需要使用FORMAT函数来满足我的要求。

enter image description here

2 个答案:

答案 0 :(得分:1)

str函数还会将float转换为字符串,不确定是否满足您的要求

 STR(1000000000E0/46E0,len(STR(1000000000E0/46E0))+10,16)

 output=21739130.43478260900

替换功能可满足您的需求

select  replace(format(1000000000E0/46E0,N'N99'), ',', '')

输出

21739130.434782600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

答案 1 :(得分:1)

您想为此格式使用Format函数

可以这样做:

declare @num as float
set @num=21739130.43478260

select format(@num, N'#.##############################');
-- output : 21739130.4347826

有很多方法可以做到这一点:

转换功能:

SELECT CONVERT(varchar(100), Cast(@num as decimal(38, 2)))
--output : 21739130.43

SELECT CONVERT (VARCHAR(50), @num,128)
--output : 21739130.4347826090000000

字符串函数:

SELECT LTRIM(STR(@num, 25, 99))
--output : 2.1739130434782609e+007