计算中的小数点为。要么 ,
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算中的小数点为。要么 ,相关的知识,希望对你有一定的参考价值。
如果我使用十进制数字输入数字,则十进制根据国家和地区格式而变化。 可以作为一个点“。”或者作为逗号“,” 我无法控制使用该应用的设备。 如果区域格式使用逗号,则计算出错。投入5,6与仅投入5次和56次相同。 即使我以编程方式允许两者兼而有之。并且,作为TextField中的输入。 如何在不使用数字和标点符号的情况下解决此问题,并且可能还必须提供说明以避免使用逗号“,”输入 它只是我需要的数字和小数的输入,小数点是这么好。
答案
一种方法是检查textField是否包含“,”。
如果包含,请将其替换为“。”并做所有算术运算。
无论如何,您将读取所有textFields和textViews作为NSString对象,您可以根据需要操纵输入值并对其进行转换。
同时显示结果时替换“。”用“,”使用户根据区域格式感到舒服。
另一答案
你应该使用NSNumberFormatter,因为这可以设置为处理不同的语言环境。
创建格式化程序:
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setLocale:[NSLocale currentLocale]];
用它:
NSNumber *number = [numberFormatter numberFromString: string]; //string is the textfield.text
如果设备的语言环境设置为语言环境,,
中的小数分隔符,数字键盘将使用is和格式化程序。在那些分组分隔符将是.
对于其他语言环境,反之亦然。
NSNumberFormatter非常复杂,您也应该阅读Data Formatter Guide中的部分。如果你的应用确实处理了这种情况,它也知道很多货币处理(显示,而不是转换)。
另一答案
您也可以使用NSNumberFormatter的类方法
NSString* formattedString = [NSNumberFormatter
localizedStringFromNumber:number
numberStyle:NSNumberFormatterCurrencyStyle];
另一答案
识别是本地国家使用逗号作为小数点
var isUsesCommaForDecimal : Bool {
let nf = NumberFormatter()
nf.locale = Locale.current
let numberLocalized = nf.number(from: "23,34")
if numberLocalized != nil {
return true
} else {
return false
}
}
以上是关于计算中的小数点为。要么 ,的主要内容,如果未能解决你的问题,请参考以下文章