我目前正在使用'N99'
格式,这很不错,除了它添加了逗号之外。
是否可以使用格式不指定逗号?
还是我必须自己使用REPLACE
删除逗号? (速度较慢,但可以接受。)
编辑:我需要使用FORMAT
函数来满足我的要求。
答案 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