NSNumberFormatter 将 0.5 更改为 .50
NSNumberFormatter changes 0.5 to .50
我的压力来自 Eureka (https://github.com/xmartlabs/Eureka) 和 NSFormatter 的使用。
我的应用程序在第一次尝试时将 0,75
更改为 0,将 1,75
更改为 1.00
在此之后,我尝试了多种方法,例如
let formatter = NumberFormatter()
formatter.groupingSeparator = "."
formatter.minimumFractionDigits = 2
formatter.alwaysShowsDecimalSeparator = true
或 formatter.numberStyle = .decimal
我不知道我怎么知道:
"Okay, now 1,75
equals 1.75
and 0,75
equals 0.75
"
我与尤里卡的小数行:
timeField = DecimalRow(){ row in
row.title = "Duration"
row.placeholder = "1.25"
row.value = timesheet.time
}
提前致谢!
可能的问题是您没有在格式化程序上设置语言环境,也没有设置小数点分隔符。我假设小数点分隔符也将是 .
。
因此 0,75
被解析为 0
因为 ,
字符未知。
以下应该可以解决您的问题:
formatter.decimalSeparator = ","
方法:
- 不要对格式分隔符进行硬编码。
- 设置语言环境或获取当前语言环境并进行设置。
代码:
let formatter = NumberFormatter()
formatter.minimumFractionDigits = 2
formatter.minimumIntegerDigits = 1
formatter.locale = Locale.current //or formatter.locale = Locale(identifier: "en_GR")
let n1 = NSNumber(value: 0.75)
formatter.string(from: n1)
正在获取所有区域设置标识符:
Locale.availableIdentifiers
感谢这位好心人,他删除了他的评论。
他是对的,解决方案是 formatter.decimalSeparator = ","
而不是分组分隔符,非常感谢!
此外,为此,您需要使用 row.useFormatterOnDidBeginEditing = true
,有了这个,,
不要变成 .
!
谢谢大家!
我的压力来自 Eureka (https://github.com/xmartlabs/Eureka) 和 NSFormatter 的使用。
我的应用程序在第一次尝试时将 0,75
更改为 0,将 1,75
更改为 1.00
在此之后,我尝试了多种方法,例如
let formatter = NumberFormatter()
formatter.groupingSeparator = "."
formatter.minimumFractionDigits = 2
formatter.alwaysShowsDecimalSeparator = true
或 formatter.numberStyle = .decimal
我不知道我怎么知道:
"Okay, now 1,75
equals 1.75
and 0,75
equals 0.75
"
我与尤里卡的小数行:
timeField = DecimalRow(){ row in
row.title = "Duration"
row.placeholder = "1.25"
row.value = timesheet.time
}
提前致谢!
可能的问题是您没有在格式化程序上设置语言环境,也没有设置小数点分隔符。我假设小数点分隔符也将是 .
。
因此 0,75
被解析为 0
因为 ,
字符未知。
以下应该可以解决您的问题:
formatter.decimalSeparator = ","
方法:
- 不要对格式分隔符进行硬编码。
- 设置语言环境或获取当前语言环境并进行设置。
代码:
let formatter = NumberFormatter()
formatter.minimumFractionDigits = 2
formatter.minimumIntegerDigits = 1
formatter.locale = Locale.current //or formatter.locale = Locale(identifier: "en_GR")
let n1 = NSNumber(value: 0.75)
formatter.string(from: n1)
正在获取所有区域设置标识符:
Locale.availableIdentifiers
感谢这位好心人,他删除了他的评论。
他是对的,解决方案是 formatter.decimalSeparator = ","
而不是分组分隔符,非常感谢!
此外,为此,您需要使用 row.useFormatterOnDidBeginEditing = true
,有了这个,,
不要变成 .
!
谢谢大家!