gpt4 book ai didi

iphone - 将十进制数作为字符串输入 NSDecimalNumber 的简单方法?

转载 作者:行者123 更新时间:2023-12-03 17:00:37 25 4
gpt4 key购买 nike

阅读文档,我将不得不做一些像这样的丑陋的事情:

NSLocale *usLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];
NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:@"0.00001" locale:usLocale];

但是:是否有更好的方法来告诉 NSDecimalNumber 类注意句点 (.) 而不是其他任何内容?地方对我来说非常不安全。如果有一天,一位新总统认为将句点符号从 . 更改为 , 太酷了怎么办?然后我的应用程序崩溃了。当然,这种情况不太可能发生。但有一点机会可以做到。使用语言环境足以吓到我了;-)

有什么想法吗?或者这是我唯一的选择?如果这是唯一的选择:上述方法正确吗?或者还有更好的吗?

而且:如果我猜对了,NSDecimalNumber 对象将读取该字符串,解析它并从中创建尾数、指数和 isNegative 值以供内部使用,对吧?

编辑:我应该提到,我以编程方式/手动(在我的代码中)添加这些值,它们不是用户输入。

最佳答案

仅当您传递的字符串在默认区域设置中不是有效的十进制数字时,才需要指定区域设置。如果您的用户创建字符串,他们很可能会根据他们正在使用的区域设置正确设置它们的格式。

使用区域设置比不使用它们安全得多。尝试解析“.”满分“1,50”不太可能成功。

考虑到这一点

[NSDecimalNumber decimalNumberWithString:@"0.00001" locale:usLocale]

在文档中描述为

Creates and returns an NSDecimalNumber object whose value is equivalent to that in a given numeric string.

我认为它会创建并返回一个 NSDecimalNumber ,其值等于字符串的值,这是一个安全的赌注。

关于iphone - 将十进制数作为字符串输入 NSDecimalNumber 的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1335953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com