Swift NSNumberFormatter将0.5更改为.50

Swift NSNumberFormatter将0.5更改为.50,swift,nsnumberformatter,eureka-forms,Swift,Nsnumberformatter,Eureka Forms,我的紧张是来自Eureka()和NSFormatter的使用 我的应用程序在第一次尝试时将0,75更改为0,并将1,75更改为1.00 在这之后,我尝试了很多事情,比如 let formatter = NumberFormatter() formatter.groupingSeparator = "." formatter.minimumFractionDigits = 2 formatter.alwaysShowsDecimalSeparator = true 或者使用formatter.n

我的紧张是来自Eureka()和NSFormatter的使用

我的应用程序在第一次尝试时将
0,75
更改为0,并将
1,75
更改为
1.00

在这之后,我尝试了很多事情,比如

let formatter = NumberFormatter()
formatter.groupingSeparator = "."
formatter.minimumFractionDigits = 2
formatter.alwaysShowsDecimalSeparator = true
或者使用
formatter.numberStyle=.decimal

我不知道该怎么说:

“好的,现在
1,75
等于
1.75
0,75
等于
0.75

我的带Eureka的十进制行:

        timeField = DecimalRow(){ row in
           row.title = "Duration"
           row.placeholder = "1.25"
           row.value = timesheet.time
        }

提前谢谢

可能的问题是您没有在格式化程序上设置区域设置,也没有设置十进制分隔符。我假设十进制分隔符也是

因此,
0,75
被解析为
0
,因为
字符未知

以下内容可以解决您的问题:

formatter.decimalSeparator = ","

可能的问题是,您没有在格式化程序上设置区域设置,也没有设置十进制分隔符。我假设十进制分隔符也是

因此,
0,75
被解析为
0
,因为
字符未知

以下内容可以解决您的问题:

formatter.decimalSeparator = ","
方法:
  • 不要硬编码格式分隔符
  • 设置区域设置或获取当前区域设置并进行设置
代码: 获取所有区域设置标识符: 方法:
  • 不要硬编码格式分隔符
  • 设置区域设置或获取当前区域设置并进行设置
代码: 获取所有区域设置标识符:
感谢那个好人,他删除了他的评论

他是对的,解决方案是
formatter.decimalSeparator=“,”
而不是分组分隔符,非常感谢

另外,为此,您需要使用
row.useFormatterOnDidBeginEditing=true
,这样,
就不会变成


谢谢大家

多亏了那个好人,他删除了他的评论

他是对的,解决方案是
formatter.decimalSeparator=“,”
而不是分组分隔符,非常感谢

另外,为此,您需要使用
row.useFormatterOnDidBeginEditing=true
,这样,
就不会变成


谢谢大家

您正在转换字符串->数字还是数字->字符串?@dan number->字符串您是如何尝试转换的?没有代码?@Ryan我在Eureka上对此采取了有限的行动,他们允许使用NSFormatter实例来解决此问题。需要更多详细信息来回答您的问题。除非您提供如何将
0.75
转换为
0
的代码,否则无法回答。您是在转换字符串->数字还是数字->字符串?@dan number->字符串您是如何尝试
转换的?没有代码?@Ryan我在Eureka上对此采取了有限的行动,他们允许使用NSFormatter实例来解决此问题。需要更多详细信息来回答您的问题。除非您提供如何将
0.75
转换为
0
的代码,没有办法回答它。你需要添加
minimumIntegerDigits=1
这个:-)你想基于你的示例添加两个十进制数字,对吗?你需要添加
minimumIntegerDigits=1
这个:-)你想基于示例添加两个十进制数字,对吗?我没有删除我的答案,我想更多地检查这个库,因为我不确定它是如何解析数字的。但是,显式设置区域设置通常是更好的主意。可能的原因是默认的解析是使用他们自己的解析,这在分组分隔符上并不正确。我已经取消了我的答案,我想更多地检查库,因为我不确定它是如何解析数字的。但是,显式设置区域设置通常是更好的主意。可能的原因是,默认解析是使用它们自己的解析,而使用分组分隔符时,解析并不真正正确。
Locale.availableIdentifiers