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

是否设置不带千位分隔符的双数字格式?

  •  0
  • JibW  · 技术社区  · 9 年前

    有人知道如何将双精度值格式化为没有千位分隔符的字符串(在Swift-ios中)吗。

    注意:我需要考虑当前的语言环境,因为一些欧洲语言使用逗号(,)作为十进制分隔符。例如,德语将12.50写成12,50。

    因此,如果双精度值为1250.25

    English-uk : 1250.25
    German     : 1250,25
    

    如果我使用以下两种方式(Whn english UK),我得到的值为(1212.50)。但我想将值格式化为String,不带千位分隔符。因此,在这种情况下,1212.50

    var testOne = String.localizedStringWithFormat("%.2f", 1212.50)
    
    var testTwo = String(format: "%.2f", locale: NSLocale.currentLocale(), 1212.50)
    
    1 回复  |  直到 9 年前
        1
  •  6
  •   Lubos    9 年前

    您需要对数字使用NSNumberFormatter,并将分组分隔符显式设置为空字符串:

    let formatter = NSNumberFormatter()
    formatter.locale = NSLocale(localeIdentifier: "en_US")  // locale determines the decimal point (. or ,); English locale has "."
    formatter.groupingSeparator = ""  // you will never get thousands separator as output
    formatter.minimumFractionDigits = 2
    formatter.maximumFractionDigits = 2
    formatter.numberStyle = .DecimalStyle
    let result = formatter.stringFromNumber(1233.99)  // you will always get string 1233.99