Tag: nsdecimalnumber

从实体A的给定实例获得实体B的所有实例的总和

我有实体A和实体B(iOS核心数据应用程序)之间的一对多关系。 我需要从实体A的给定实例获得实体B的所有实例的NSDecimalNumber属性的总和。有没有人有这样的教程或例子?

iOS中有NSDecimalNumber的错误十进制分隔符

我试图用下面的方式输出正确的小数点分隔符的十进制数的描述: NSString* strValue = @"9.94300"; NSDecimalNumber* decimalNumber = [NSDecimalNumber decimalNumberWithString: strValue]; NSLocale* locale = [NSLocale currentLocale]; NSLog(@"%@", [locale localeIdentifier]); NSLog(@"%@", [decimalNumber descriptionWithLocale: locale] ); 输出是: de_DE 9.943 小数点分隔符应该是','而不是'。' 为这个地方。 错误在哪里? 如何输出正确的小数点分隔符取决于本地?

小数点后的NSDecimalNumber零(iPhone SDK)

我有以下代码 (…) numberStyle = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundPlain scale:2 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO]; strThree = textFieldThree.text; strThree = [strThree stringByReplacingOccurrencesOfString:@"." withString:@""]; fieldOneDNa = (NSDecimalNumber *)[NSDecimalNumber decimalNumberWithString:strThree]; oneHundred = (NSDecimalNumber *)[NSDecimalNumber decimalNumberWithString:@"100"]; fieldOneDN = [fieldOneDNa decimalNumberByDividingBy:oneHundred withBehavior:numberStyle]; firstStepReturn = [fieldOneDN stringValue]; textFieldThree.text = firstStepReturn; (…) 我希望能够让firstStep返回小数点后面的两位数,即使它们是.00或。* 0。 例如,如果323.390被input到文本字段“textFieldThree”中,它将被处理并返回到3233.90的文本字段。 目前显示为3233.9。 任何帮助将不胜感激。

NSDecimalNumber decimalNumberWithString:忽略当前的语言环境

根据文档, [NSDecimalNumber decimalNumberWithString:]应该使用语言环境小数分隔符: NSDecimalSeparator是一个句点(例如,在美国使用)还是一个逗号(例如在法国使用)取决于默认语言环境。 但是,当我尝试它,这个代码: NSLog(@"%@", [NSDecimalNumber decimalNumberWithString:@"100,1"]); NSLog(@"%@", [NSDecimalNumber decimalNumberWithString:@"100,1" locale:NSLocale.currentLocale]); 给… 100 100.1 …作为iOS 5和iOS 6上的输出。我已经尝试使用瑞典语和法语作为区域设置,因为这两个国家都使用逗号(,)作为小数点分隔符。 不应该输出相同吗? (我知道我可以使用[NSDecimalNumber decimalNumberWithString:locale:]来强制行为,所以这个问题不是find一个替代scheme,只是如果这是一个错误,或者我做错了什么)

将NSDecimalNumber转换为NSString

我从一个看起来像这样的对象检索一个键: po obj { TypeID = 3; TypeName = Asset; } 键值正在像这样被检索: NSString *typeId = (NSString*)[obj objectForKey:@"TypeID"]; typeId不是NSString,而是NSDecimalNumber。 这是为什么? 我如何将其转换为NSString?

比较NSDecimalNumber的不同方法

例如,用原始的,我会做这个 if ( (x >= 6000) && (x <= 20000) ) // do something here 和NSDecimalNumber,这是我有 if ( (([x compare:[NSNumber numberWithInt:6000]] == NSOrderedSame) || ([x compare:[NSNumber numberWithInt:6000]] == NSOrderedDescending)) && (([x compare:[NSNumber numberWithInt:20000]] == NSOrderedSame) || ([x compare:[NSNumber numberWithInt:6000]] == NSOrderedAscending)) ) { // do something here } 有没有其他的方式(更简单,更优雅)比较? 如果我把这个值转换为原始的,我会用什么原始的? 我不想使用CGFloat,float或double,因为我在这里处理货币。 或者如果我把它们转换成上面提到的那些,有人可以validation/解释精度吗?

检查NSDecimalNumber是否是整数

检查NSDecimalNumber的实例是否是整数的最简单方法是什么? 谢谢!