问题标签 [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 投票
4 回答
6046 浏览

objective-c - 如何在十进制和整数之间拆分 NSDecimalnumber 并返回

我不知道如何从 NSDecimalnumber 中获取整数和十进制值。

例如,如果我有 10,5,如何得到 10 和 5?

如果我有 10 和 5,如何返回 10,5?


嗯,好的,看起来更好!

但是,我担心丢失小数。

这是一个国际化的应用程序。例如,如果用户设置价格“124,2356”,我想加载并保存确切的数字。


嗯,好吧,就是这样,但不尊重小数位数。如果存在一种从我设置的当前本地知道的方法。

这是因为它代表货币价值......

0 投票
1 回答
3148 浏览

objective-c - NSDecimalNumber 的 decimalNumberByDividingBy:withBehavior 问题:

我似乎总是遇到 NSDecimalNumber 的麻烦!今天,我收到此错误:

"Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFNumber decimalNumberByDividingBy:withBehavior:]: unrecognized selector sent to instance 0xd1fb10'"

这是错误的来源:

文档将方法定义为:

我一定不能正确解释 " (id<NSDecimalNumberBehaviors>)behavior" 论点。只要符合 NSDecimalNumbersBehaviors 协议,这不就是任何对象吗?

我在做什么错?代码示例将非常有帮助。

星期五快乐!

0 投票
1 回答
1846 浏览

objective-c - NSNumber 的格式化绝对值

嗯,它实际上是一个 NSDecimalNumbers 数组的总和,我想得到它的绝对值......我一直觉得我正在与框架进行所有所需的转换和类型转换......从 double 到 NSNumber到 NSDecimalNumber 并返回......所有同时试图保持 NSDecimalNumber 提供的精度。以下方法有效,但有没有更简单的方法可以避免所有这些转换和类型转换?

也许我可以更改 NSNumberFormatter (currencyFormatter) 以忽略 - 符号?

0 投票
1 回答
330 浏览

iphone - 你如何将浮点数从另一个类传递给 ProgressView?

我正在尝试从另一个类中进行的计算中传递 ProgressView 一个浮点数。我尝试通过将其转换为 NSDecimalNumber 来传递它,但是当它到达目的地时我无法再次将其恢复为浮点数。一定有比这更好的方法。

0 投票
3 回答
2420 浏览

iphone - 通过核心数据计算十进制值的总和不能正常工作?

我是第一次在这一轮发帖,所以如果我没有正确遵守所有规则,请多多包涵。

我正在为 iPhone (OS 3.1) 编写一个应用程序,并试图编写一些代码来添加小数。我有一个名为 SimpleItem 的核心数据实体,它有一个数量属性。这是我写的测试用例:

如果我通过 otest 执行此代码并对其进行调试,则在执行 fetch 请求时会出现异常:“-[NSDecimalNumber count]: unrecognized selector sent to instance.”

不过,仅在没有聚合函数的情况下评估 keyPathExpression 就可以正常工作。

参考文档显示了完全相同的示例,所以我想知道我做错了什么。或者这可能只是一个错误?

一切顺利,哈拉尔

0 投票
2 回答
8078 浏览

ios - 小数点后的 NSDecimalNumber 零(iPhone SDK)

我有以下代码

我希望能够让 firstStepReturn 在小数点后有 2 位数字,即使它们是 .00 或 .*0。例如,如果将 323.390 输入到文本字段“textFieldThree”中,它将被处理并作为 3233.90 返回到文本字段。目前,它显示为 3233.9。

任何帮助将不胜感激。

0 投票
2 回答
3212 浏览

iphone - NSNumberFormatter 和舍入百分比值

这是我的代码片段,我不知道如何舍入双数。

这里 tmpProduct.msrp 和 mpProduct.discountPrice 是 (NSDecimalNUMber *)

从上面的操作我得到 p = 44.995757

我想将其转换为 (45%) ,我该怎么做?

这是我使用的,但这无济于事。

0 投票
2 回答
4330 浏览

iphone - iPhone货币输入使用NSDecimal而不是float

iPhone/Objective-C/Cocoa 新手在这里。基于 stackoverflow 上的一些帖子,我拼凑了一个 IBAction,我在我正在构建的基本 iPhone 计算器应用程序中使用它。IBAction 与数字键盘配合使用,无需输入小数点即可输入十进制数字。

我正在非常努力地遵守“在处理货币时使用 NSDecimal”的格言,尽管我发现像许多其他发布问题的人一样很难做到这一点。我正在稳步前进,但是在我了解 NSDecimal 和 Format Specifications 之后,我确信这会看起来微不足道。

这是我正在使用的 IBAction(它由 Editing Changed UITextField 事件触发):

currencyField1 代码段使用浮点数,currencyField2 段使用 NSDecimal。

currencyField1 段按需要工作:显示所有小数点后两位数字(即使使用删除键删除所有输入的数字);但是,它会遇到并完美地说明了在处理大货币值时使用浮点数的问题:当输入的数字超过 8 位时,会出现舍入错误。

currencyField2 段通过使用 NSDecimal 而不是 float 来避免舍入错误问题;但是它并不总是显示小数点后有两位数字的数字——当使用删除键删除所有输入的数字时会显示这种情况。我相信问题是由于这行代码:

这是产生所需浮点格式的以下行的推论:

所以,我认为我需要等效于 @"%0.2f" 来格式化“0”值 NSDecimalNumber 的显示。我已经为此呆了这么多小时,以至于我很尴尬,但我就是想不通。

任何帮助或指针表示赞赏。

编辑:我合并了 NSNumberFormatter 对象(类似于布拉德在他的评论中描述的),这似乎已经解决了这个问题。但是,我想要一些关于重构代码的反馈,因为我已经让它工作了。这是修改后的代码:

它解决了我最初的问题,但我将不胜感激有关如何改进它的任何建议。谢谢。

0 投票
4 回答
1625 浏览

iphone - 在 iPhone 开发中创建自动释放对象

我需要创建一些NSDecimalNumber对象对象作为我的应用程序的一部分(因为我需要它们提供的计算精度),但我注意到在计算中它们返回 NSDecimalNumber 对象,这些对象可能是自动释放的。

我的问题真的是这在我可能进行大量计算的 iPhone 应用程序中是否存在潜在问题。

这个问题不仅仅与 NSDecimalNumber 有关,还与在开发 iPhone 应用程序的过程中有时不可避免地创建自动释放对象有关。

我们将不胜感激地收到有关这一点的任何详细答案。

0 投票
1 回答
1922 浏览

objective-c - Cocoa:尾数和指数为 0 的 NSDecimalNumber

在数学上,任何指数为 0 的数字都应该等于 1(我的补救数学研究向我保证)。

但是这段代码产生了 5:

这是计算机编程中的标准吗——可以依赖于在未来的 Cocoa 版本中没有被“纠正”吗?