繁体   English   中英

当使用逗号而不是小数点时,我的iOS应用程序会计算数字吗?

[英]Will my iOS app calculate figures when a comma is used instead of a decimal point?

iOS开发新手,我只是为启动器制作一个小工资型计算器。 我正在探索不同的功能,包括在法国和其他非英语原生国家提供应用程序。

但是,由于我的应用程序非常依赖于计算其中包含小数点的数字,我想知道如果使用逗号作为小数点iOS是否会计算数字,因为像法国这样的国家使用这种表示法:

澳大利亚/美国/其他国家:

12.5 * 15.8 = 197.5

法国/其他国家:

12,5 * 15,8 = 197,5

我几乎要问a)如果插入逗号而不是小数点,它是否仍会在本地设备上计算,b)如果没有,我应该在我的应用程序中包含哪些代码,以便计算这种表示法? (请注意,我不是要求逗号作为分隔符,而是等同于小数点。)

先感谢您!

实际上,iOS内置了一个方便的类来处理数值的本地化。 它被称为NSNumberFormatter ,它特别具有-setDecimalSeparator:方法。

在使用该图之前,您应该通过将其转换为NSNumber来“标准化”它。 这是如何做:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];    
NSNumber *myNumber = [formatter numberFromString:@"197.5"];

这是正确的方法,使用此方法将考虑区域首选项,逗号分隔符等。

此时,myNumber可以用作十进制,浮点数,整数等。

float myFloat = [myNumber floatValue];

当使用逗号而不是小数点时,我的iOS应用程序会计算数字吗?

是。 只要你使用NSNumberFormatter它就会相当透明。

我想知道如果使用逗号作为小数点iOS是否会计算数字,因为像法国这样的国家使用这种表示法...

有关如何格式化数字和日期等内容的信息由NSLocale类管理。 NSNumberFormatter使用当前语言环境来确定如何解释和显示数字,因此当使用-numberFromString:方法时,格式化程序将使用适当的小数分隔符。 使用-stringFromNumber:生成数字的字符串表示形式时也是-stringFromNumber:

出于您的目的,您可能不必担心区域设置。 只需使用数字格式化程序来解释输入并生成输出,格式化程序将使用适合用户的语言环境。 但是,如果您希望应用程序提供本地化为用户以外的语言或区域的信息,则可以使用-setLocale:方法将数字格式化程序设置为使用特定区域设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM