问题标签 [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.
.net - Cocoa 十进制和协议缓冲区,与 .NET 兼容
我一直在使用使用 CocoaTouch 编写的 iOS 应用程序使用 Protocol Buffers,并且遇到了可能相当于十进制数字的新手错误。
Protocol Buffers 没有原生十进制类型 - 请参阅http://code.google.com/apis/protocolbuffers/docs/proto.html#scalar了解所有类型。相反,我做了一个(现在显然不正确的)假设,即浮点数可以代替小数。它没有,因为存在舍入问题。
Cocoa 在 NSDecimal.h 中有一组 C 函数,它们看起来很吸引人。但是,由于我正在与使用 .NET 编写代码的服务器进行通信,因此我需要一种方法来转换为两个系统都可以理解的格式。
我假设我将使用原始“字节”类型在两个系统之间传输数据并在每个环境中转换为本地十进制类型:可可端的 NSDecimal,.NET 端的十进制。在这里,我不清楚如何进行。
我应该使用什么中间格式 - 二进制编码的小数似乎是一种可能性,但我必须自己实现一种算法才能在两个系统上进行转换。
.NET 和 Cocoa 都可以使用一种字节编码的十进制格式吗?
非常感谢。
iphone - 无法识别的选择器发送到实例
可能重复:
发送到实例的无法识别的选择器
谁能告诉我这个错误代码发生了什么?人苹果是神秘的。我刚刚通过 ObjectiveResource 对我知道的数据进行了调用。
objective-c - 将 NSDecimalNumber 显示为 IB 中的货币
我有一个具有属性数量的核心数据实体,即 NSDecimalNumber
. 对于这个属性,实体的类有一个用NSDecimalNumber
as 参数定义的方法。
在 Interface Builder 中,我将一个表列绑定到此属性(使用NSArrayController
),并在列的单元格上放置了一个NSNumberFormatter
. 格式化程序在 IB 中配置为“货币”。
现在,当我尝试输入数字时,出现以下错误:
显然,我的 setter 方法正在接收常规NSNumber
而不是NSDecimalNumber
. 我能否以不同的方式配置我的格式化程序,可能是在代码中而不是 IB 中,或者是添加带有NSNumber
as 参数的额外设置器的唯一选项?
iphone - 核心数据和 iPhone 的 NSDecimalNumber 问题
我对核心数据和 iphone 编程相当陌生。也许这是一个显而易见的答案,所以如果有人能指出我的教程或其他资源,不胜感激!我有一个核心数据实体,它是十进制类型,因为它处理货币,我读过的所有内容都说在处理货币时使用 NSDecimalNumber。话虽如此,我一生都无法弄清楚在插入新对象时如何设置值。这是我所拥有的
我在这里做错了什么?提前致谢!
ios - 从实体 A 的给定实例获取实体 B 的所有实例的总和
我在实体 A 和实体 B(iOS 核心数据应用程序)之间有一对多的关系。我需要从实体 A 的给定实例中获取实体 B 的所有实例的 NSDecimalNumber 属性的总和。有人有这方面的教程或示例吗?
objective-c - NSDecimalNumber 的小数部分
我正在使用 NSDecimalNumber 来存储货币值。我正在尝试编写一个名为“cents”的方法,如果数字<10,它将数字的小数部分作为一个带有前导0的NSString返回。所以基本上
而且我正在尝试制作一种方法,该方法将返回 01、02 等...最多 99 作为字符串。我似乎无法弄清楚如何以这种格式将尾数作为字符串返回。我觉得我错过了一种方便的方法,但我再次查看了文档,并没有看到任何突然出现在我身上的东西。
ios - NSString 可以被视为 NSCFDecimal 吗?
我想使用- (BOOL)isEqualToString:(NSString *)aString
这些字符串比较两个字符串,这些字符串是字典中使用-(id)objectForKey:(id)aKey
包含数字字符的对象。
当我使用 来检查这些字符串的类时[object class]
,无论我如何将它们转换为NSString *
,它一直显示它们是NSCFDecimal
数字,需要使用 进行比较==
。如果我想isEqualToString
在它们上使用,它会引发错误。
谁能解释为什么会这样?
iphone - Objective-C:使用 NSDate 和 NSDecimalNumber 计算每小时费率
我有两个 NSDate 实例(一个开始时间和一个结束时间),还有一个 NSDecimalNumber (代表在两个日期之间的时间段内赚取的金额)。我要做的是根据这三个变量计算每小时费率。我想出了一些可行的方法,但对我来说有点过分了,我想知道是否有更简单、更有效的方法。这就是我现在正在做的事情。
计算两个 NSDate 之间的时间量
将其转换为小时
将小时数加倍转换为 NSNumber
将 NSNumber 转换为 NSString
使用这个字符串创建一个 NSDecimalNumber
将原始 NSDecimalNumber(结果)除以这个新的 NSDecimalNumber 时间表示
如果我理解正确,那么做任何涉及我原始 NSDecimalNumber 的数学运算的唯一方法是创建另一个 NSDecimalNumber 实例,因此有必要完成所有这些步骤。我担心我可能会失去准确性或执行不必要的步骤。感谢您的任何建议。
objective-c - NSDecimalNumber:将两个 NaN 相加会导致溢出?
出于某种奇怪的原因,我从以下内容收到 NSDecimalNumberOverflowException:
这对我来说似乎出乎意料,因为 NSDecimalNumber 的 notANumber 的文档指出任何接收 NaN 作为参数的算术运算都会返回 NaN ...
对于 1+NaN 和 NaN+1,我收到相同的错误...谢天谢地,1+1 仍然给出 2。
关于发生了什么的任何想法?
objective-c - 简化 NSDecimalNumber 初始化
我有以下构造,我想对其进行简化。为了摆脱 NSNumber 与 NSDecimalNumber 编译器警告,我不得不使用 NSString (?)。
NSDecimalNumber *ticksSinceSeventies = [NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%d",[self timeIntervalSince1970]]];
感谢您的帮助!