SQL 服务器:如何将浮点数格式化为不带逗号的字符串?

SQL Server: How can I format a float as a string, without commas?

我目前使用的格式 'N99',这很好,只是它添加了逗号。

有没有办法在格式中指定无逗号?
还是我必须使用 REPLACE 自己删除逗号? (较慢,但可以接受。)

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

str 函数也将 float 转换为 string,不确定它是否满足您的要求

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

 output=21739130.43478260900

替换功能可满足您的要求

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

输出

21739130.434782600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

你想对这种格式使用 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