gpt4 book ai didi

ios - 为 NSNumber 值设置精度

转载 作者:行者123 更新时间:2023-11-29 13:12:22 24 4
gpt4 key购买 nike

我对当前包含 0.522000003606 的 NSNumber 变量“num”有疑问

我在 stackoverflow 上查找了其他几个问题,其他人也有同样的问题,但没有。我的项目目前正在使用 ARC,所以我认为某些功能不可用,也就是说,除非我在我当前想要设置 NSNumber 精度的类中禁止 ARC。

我知道 NSNumberFormatter 是我必须使用的基本 setPrecision 类函数,但我遇到了问题....

每次我使用 NSNumberFormatter,它都会返回 NULL!!!

nowValue = [now objectForKey:@"value"]; // This is what IM ACTUALLY DOING!!!
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setRoundingMode:NSNumberFormatterRoundHalfUp];
[formatter setFormatWidth:2];
NSString *string = [formatter stringFromNumber:num];

我觉得这太琐碎了!谁能给业余程序员一些建议? :)

编辑:

这就是我现在正在做的,使用 NSDecimal 而不是 NSNumber。 “Now”是一个大字典对象,nowValue 是 num 的副本。

nowValue = (__bridge NSDecimal *)([now objectForKey:@"value"]);

最佳答案

问题已解决!......感谢大家的投入,但是是的......这是一个字符串。 Martin R,感谢您调试代码。理解 _NSCFString 实际上只是 NSString 的包装器,但它们主要是相同的。

这是我的解决方案...

nowValue outputs : 24.14295959472

nowValue = [now objectForKey:@"value"];
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * nowNum = [f numberFromString:nowValue];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
nowValueFormatted = [formatter stringFromNumber:nowNum];

nowNum outputs : 24.14

关于ios - 为 NSNumber 值设置精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16900401/

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