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
我目前使用的格式 '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