计算中的小数点为。要么 ,

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
    }
}

以上是关于计算中的小数点为。要么 ,的主要内容,如果未能解决你的问题,请参考以下文章

从父活动调用时,片段视图为空

将小数化简为分数的算法

Java 数字格式

java 取Excel带有小数点数据,不能取完整,只能取小数点的后面2位,怎么解决?

基础-事务

oracle保留两位小数