我正在创建一个OS X应用程序,当我这样做时:
var tempVal = 10495.33
tempTextField.doubleValue = self.tempVal
它显示如下:10,495.33
。注意逗号。
现在当我在NSTextField中将该值修改为30,400.34并尝试将其分配回doubleValue时,事情就搞砸了。
tempVal = tempTextField.doubleValue //Now this makes tempVal = 30 instead of 30,400.34
这完全是因为逗号。没有逗号,事情就好了。
我知道有一个错误的解决方法,我只是从数字字符串中删除所有逗号,但我觉得有更好/正确的方法来执行此操作。
答案 0 :(得分:0)
该问题很可能是由您的系统设置引起的。显然(不知道为什么),您应该以类似于US的格式输入数字(使用“。”作为小数点分隔符),但是文本字段的输出取决于您的系统设置。因此,如果您在欧洲,最有可能使用“,”作为小数点分隔符
您可以按以下方式修复它(您可以配置NSTextField的格式,因此无需格式化输入的数据)
//This codes works in swift 4
//This should be your textfield. It is either programmed or you link it through storyboard
var myTextField = NSTextField()
//This is a formatter. You can set it up how to format the textfield
var myFormat = NumberFormatter()
myFormat.decimalSeparator = "."
myFormat.numberStyle = .decimal
//Now you connect the two
myTextField.formatter = myFormat