计算中的小数点。 要么 ,

如果我使用小数点input数字小数点的变化取决于国家和地区的格式。
可能是一个点“。” 或作为逗号“,”
而且我无法控制应用程序在哪个设备上使用。
如果区域格式使用逗号,则计算出错。 join5,6就是一次只能input5次,同样是56次。
即使我以编程方式允许这两个。 并作为TextField中的input。
如何在不使用数字标点的情况下进行此操作,并且可能还必须给出使用逗号避免input的说明“
这只是input数字和十进制我需要和小数点是如此之多更好。

一种方法可能是检查textField是否包含“,”。

如果包含,则用“。”replace。 并做所有的算术运算。

因为无论如何,您将会读取所有textFields和textViews作为NSString对象,您可以操纵input值并根据您的需要进行转换。

同时显示结果replace“。” 与“,”,使用户感觉舒适按区域格式。

你应该为此使用一个NSNumberFormatter ,因为这可以设置为处理不同的语言环境。

创build一个格式化程序:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; [numberFormatter setLocale:[NSLocale currentLocale]]; 

用它:

 NSNumber *number = [numberFormatter numberFromString: string]; //string is the textfield.text 

如果设备的语言环境设置为语言环境,则其中的小数点分隔符,数字键盘将使用的格式化程序和格式化程序。 在那些分组分隔符会.

对于其他语言环境,反之亦然。

NSNumberFormatter非常复杂,你也应该阅读它的“ 数据格式化指南”一节。 它也知道很多货币处理(显示,而不是转换),如果你的应用程序处理这样的。

你也可以使用NSNumberFormatter的类方法

 NSString* formattedString = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterCurrencyStyle];