SQL Server:如何将浮点数格式化为字符串,而不使用逗号?
我目前使用的格式是SQL Server:如何将浮点数格式化为字符串,而不使用逗号?,sql,sql-server,string,format,sql-server-2017,Sql,Sql Server,String,Format,Sql Server 2017,我目前使用的格式是'N99',这很好,只是它添加了逗号 有没有办法在格式中不指定逗号? 或者我必须使用替换来删除逗号吗?(速度较慢,但可以接受。) 编辑:我需要使用格式功能来满足我的要求 str函数还可以将浮点值转换为字符串,但不能确定它是否满足您的要求 STR(1000000000E0/46E0,len(STR(1000000000E0/46E0))+10,16) output=21739130.43478260900 替换功能可满足您的需求 select replace(forma
'N99'
,这很好,只是它添加了逗号
有没有办法在格式中不指定逗号?或者我必须使用
替换来删除逗号吗?(速度较慢,但可以接受。)
编辑:我需要使用格式
功能来满足我的要求
str
函数还可以将浮点值转换为字符串,但不能确定它是否满足您的要求
STR(1000000000E0/46E0,len(STR(1000000000E0/46E0))+10,16)
output=21739130.43478260900
替换功能可满足您的需求
select replace(format(1000000000E0/46E0,N'N99'), ',', '')
输出
21739130.434782600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
str
函数还可以将浮点值转换为字符串,但不能确定它是否满足您的要求
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
字符串函数:
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
您想对该格式使用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
字符串函数:
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
格式?@saAction它似乎在小数点的右侧提供99位数字,而不管小数点的左侧有多少位。我只知道这些。当我开始使用非常小的数字时,它需要大量的十进制数字。什么是N99
格式?@saAction它似乎在小数点的右侧提供99个数字,而不管小数点的左侧有多少个数字。我只知道这些。当我开始使用非常小的数字时,这很重要,需要很多十进制数字。谢谢。它确实去掉了逗号。不幸的是,它不能满足我的其他要求。但这是对这个问题的一个很好的回答,可能会帮助其他有同样问题的人。谢谢。它确实去掉了逗号。不幸的是,它不能满足我的其他要求。但是这是对这个问题的一个很好的回答,并且可能会帮助其他人解决同样的问题。格式(@num,N'.\35;#####)
非常有效!它甚至删除了尾随的零,这甚至更好。(当然我最后会用很多,但那很好。)谢谢<代码>格式(@num,N'!它甚至删除了尾随的零,这甚至更好。(当然我最后会用很多,但那很好。)谢谢!