问题标签 [nsdecimalnumber]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
634 浏览

iphone - 在 NSDecimalNumber 方面需要帮助

我正在尝试使用我拥有的 NSDecimalNumber,并将其乘以 1.1。

我有这个,但它不起作用:

更新:

这是整个代码,有谁知道它为什么不起作用?

在乘法行崩溃,出现错误:*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCell decimalNumberByMultiplyingBy:]: unrecognized selector sent to instance 0x5d91a60'

0 投票
1 回答
2256 浏览

iphone - 获取 NSDecimalNumberOverflowException 错误

我在 line: 处遇到错误if (! [self.event.managedObjectContext save:&error])。只有当用户没有在 textField 中输入另一个数字时才会发生这种情况,所以它是0.

0 投票
1 回答
1937 浏览

ios - NSNumberFormatter 不接受小数点后的零

有人问过类似的问题,但我发现提供的解决方案不适用于最新的 iOS SDK,或者不完全适用于这种特殊情况。

我使用 NSNotification 调用一个方法,该方法在 UILabel 中使用分组符号格式化数字,因为它是使用按钮输入中的数字输入的。它也适用于整数和小数——只要小数点后没有输入零。例如,如果输入 2000,它会显示为 2,000,因为它输入得很好。如果输入 23.345,也显示得很好。对这些数字进行的任何计算都是正确的。但是不能输入0.0001或者0.2340007!它只是不会在小数点后附加任何零。

我从 stackoverflow 的另一篇文章中得到了原始代码的想法:

格式化程序的参数没有多少(我已经尝试过)允许在小数点后输入零。

0 投票
1 回答
116 浏览

objective-c - 大整数上的 SBJSONParser

我正在使用 json-framework 来解析 iPhone 项目中的 JSON 数据。但是json数据中有很大的数字,比如10432159274,会导致NSNumber溢出。在 SBJsonParser.h 中,文档说 JSON 中的数字将转换为 NSNumber 或 NSDecimalNumber。如何使用它,以便将大整数解析为 NSDecimalNumber?谢谢。

0 投票
1 回答
275 浏览

ios - NSDecimalNumberPlaceHolder 泄漏

我有一个 iPad 应用程序,在进行 beta 测试之前,我正在 Instruments 中进行测试。我已经摆脱了除了一个之外的所有内存泄漏,我找不到任何关于它的信息。我不知道该怎么做,因为我的代码从未提到泄漏对象,它是 NSDecimalNumberPlaceHolder 的一个实例。

当然我使用的是 NSDecimalNumber。我为每个用户操作创建 2 个小数,每次我运行一个应用程序周期(它对两个 NSDecimalNumbers 执行一些数学运算)我生成这个 NSDecimalPlaceHolder 事物的四个实例。由于我不知道它是如何创建的,因此我不知道如何释放或释放它,以免一遍又一遍地产生这 16 个 btye 泄漏。

这些可能不是真正的泄漏吗?

我已经运行了 XCode Analyzer,它没有报告任何问题。

我正在做的是这样的:

我将一个十进制数从我的控制器发送到我的模型(analyzer_),它执行操作并发回结果。

setOperand 方法如下所示:

}

请注意,如果我不保留操作数_“某处”,我会遇到 BAD_ACCESS 崩溃。我目前在操作数和之前提供的操作数(queuedOperand_)被操作的地方保留并释放它。例如:

其中 performQueuedOperation 是:

如果不清楚,请告诉我。谢谢。

0 投票
1 回答
1994 浏览

macos - 传递给 NSDecimalNumber +decimalNumberWithString:locale: 的语言环境参数是什么,所以它总是与使用点 (.) 小数点的 NSString 一起工作?

我有一个 NSString ,我想将其转换为NSDecimalNumber. 该字符串是从服务器接收的,并且始终使用en_US区域设置 likeXXX.YYY和 not like进行格式化XXX,YYY。无论用户的语言环境如何,我都想创建一个NSDecimalNumber接受的。XXX.YYY该数字永远不会向用户显示,它用于进行内部数学运算。

通常你会做这样的事情:

但是,如果用户正在运行fr_FRMac OS X 的语言环境,那将会中断。en_US将其解释为点二三四,其中-asfr_FR将其解释为一千二百三十四,两者都是非常不同的数字。

显而易见的解决方案是使用+decimalNumberWithString:locale:. 但我不确定将什么作为参数传递给locale:适用于所有国际版本的 Mac OS X 的参数。我最好的猜测是这样做:

这是最好的方法吗,安全吗?本地标识符会@"en_US"在所有国际版本的 Mac OS X 上可用,还是nil在某些情况下会返回 NSLocale?


更新1:这似乎运作良好,并且更明确:

NSLocaleDecimalSeparator是为 NSLocale 定义的常量,它响应-objectWithKey:,就像 NSDictionary 一样。你可以给它任何你想要的小数点分隔符,比如@",".

我认为这可能是该问题的最佳答案,除非其他人有更好的主意?

0 投票
2 回答
3055 浏览

objective-c - NSDecimalFormatter 和货币符号:$US 而不是 $

我一定遗漏了一些明显的东西,但由于我在这方面浪费了太多时间,我会让专家看看。我只是愿意得到一个完全按照我想要的格式格式化的字符串,但是货币符号给了我一个问题:当我只想要符号时,它使用了某种国际代码。

这导致: 1,250.56美元而不是1,250.56美元

我不会设置语言环境,因为我只有一个符号:EUR / USD / GBP 等。

0 投票
0 回答
548 浏览

objective-c - 使用 NSDecimalNumber 计算字段的 NSPredicate

我想用 NSDecimalNumber 值过滤 Core Data 中的计算字段(Apple 文档中的二进制表达式)。

实体有两个属性:field1和field2,都是Decimal类型

谓词是:

但这不起作用。它什么也不回报。

当我单独过滤每个属性时,它就会起作用。例如:

怎么了?

0 投票
3 回答
1100 浏览

ios - NSDecimalNumber 不应该能够进行以 10 为底的算术吗?

NSDecimalNumber应该能够正确地进行以 10 为底的算术吗?

0 投票
1 回答
3086 浏览

objective-c - 将 NSDecimalNumber 转换为 NSString

我使用此代码获取 md5 字符串哈希

当我这样做时,它工作得很好

但是当我做这个时

我有一个错误

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSDecimalNumber UTF8String]:无法识别的选择器已发送到实例 0x61a7080”

userId 是一个 NSString

但它包含 facebook 用户 id,比如我试过的“3309843”

我仍然有同样的错误

更新 我试过这个

并且仍然有同样的错误,我认为问题是方法 md5。我不能得到一串数字的 md5 吗?