代码之家  ›  专栏  ›  技术社区  ›  Giffyguy

SQL Server:如何将浮点格式化为字符串,而不使用逗号?

  •  0
  • Giffyguy  · 技术社区  · 6 年前

    'N99' ,这很好,只是它加了逗号。

    有没有办法指定格式中没有逗号?
    还是一定要用 REPLACE 我自己去掉逗号?(速度较慢,但可以接受。)

    编辑: 我需要使用 FORMAT

    enter image description here

    2 回复  |  直到 6 年前
        1
  •  1
  •   saAction    6 年前

    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
    
        2
  •  1
  •   Zaynul Abadin Tuhin    6 年前

    str

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

    替换功能可满足您的要求

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

    输出

    21739130.434782600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000