Swift 本地化问题?从Textfield提取时以逗号修剪的数字

Swift 本地化问题?从Textfield提取时以逗号修剪的数字,swift,macos,cocoa,Swift,Macos,Cocoa,我有一个Mac应用程序正在尝试从文本字段获取数据。 我采用3001填充文本字段,使用: mytextfield.integerValue = 3001 然后在3001的文本字段中显示该值。当我使用 let numberResult = mytextfield.integerValue //or mytextfield.doublevalue 它返回数字3(即逗号后的任何数字都是四舍五入的。) 如何从文本字段正确获取3001值 以下是所要求的各种输出的示例: print(mytextfiel

我有一个Mac应用程序正在尝试从文本字段获取数据。
我采用3001填充文本字段,使用:

mytextfield.integerValue = 3001
然后在
3001
的文本字段中显示该值。当我使用

let numberResult = mytextfield.integerValue  //or mytextfield.doublevalue
它返回数字
3
(即逗号后的任何数字都是四舍五入的。)

如何从文本字段正确获取
3001

以下是所要求的各种输出的示例:

print(mytextfield.integerValue) //3
print(mytextfield.intValue) //3
print(mytextfield.doubleValue) //3.0
print(mytextfield.stringValue) //3,001

将用户输入的字符串转换为数字的正确方法是使用
NumberFormatter
。这将正确处理特定于区域设置的分组和小数分隔符


integerValue
doubleValue
等方法不支持本地化或格式化的值。

将用户输入的字符串转换为数字的正确方法是使用
NumberFormatter
。这将正确处理特定于区域设置的分组和小数分隔符


integerValue
doubleValue
等方法不支持本地化或格式化的值。

什么是
integerValue
(请考虑属性和方法应该以小写字母开头)?抱歉,这是一个输入错误-已将其更正为integerValue什么是
integerValue
(考虑属性和方法应该以小写字母开头)?抱歉-这是一个输入错误-已将其更正为IntegerValueRmaddy-这是有意义的-但感觉像是框架部分的遗漏/错误。当然,如果您为textfield赋值-无论表示层中的本地化程度如何,它都应返回相同的值?是否有示例代码?请阅读中的
文档TEGRVALUE
。它清楚地表明它试图以非本地化的方式将字符串转换为数字。简而言之,这意味着不允许格式化,并且只能有一个
作为十进制分隔符。link:-似乎是一种非常意外的操作方式。您有NS数字格式化程序示例there are count的示例吗使用
[NS]的示例更少Swift中的NumberFormatter
。请在此开始简单搜索。感谢rmaddy-这很有意义-但感觉像是框架部分的遗漏/错误。当然,如果您为文本字段指定值,则无论表示层中的位置如何,它都应返回相同的值。您有示例代码吗?阅读文档对于
integerValue
。它清楚地表明它试图以非本地化的方式将字符串转换为数字。简而言之,这意味着不允许格式化,并且只能有一个
作为十进制分隔符。link:-似乎是一种非常意外的操作方式。您有NS数字格式化程序示例吗在Swift中使用
[NS]NumberFormatter
的例子不胜枚举。请在此处进行简单搜索开始。