gpt4 book ai didi

ios - NSNumber 丢失小数位

转载 作者:可可西里 更新时间:2023-11-01 17:08:49 29 4
gpt4 key购买 nike

我需要将一个 float 保存到一个 NSNumber(名为 ordered.value 的变量)中。问题是小数位在转换过程中已设置为零。

此外,我还添加了 3 版本变量的日志,因此您可以看到原始 float 是正确的。然后 NSNumber 丢失了小数位。

这是我的第一次尝试(更简单的版本):

ordered.value = [NSNumber numberWithFloat:[o.valore floatValue]];
NSLog(@"%f,%f",[o.valore floatValue],[ordered.value floatValue]);

但我仍然丢失了小数位。日志:

2013-05-20 20:05:19.617 Piazzetta[9636:c07] 232.179993,232.000000
2013-05-20 20:05:19.617 Piazzetta[9636:c07] 20159.490234,20159.000000
2013-05-20 20:05:19.618 Piazzetta[9636:c07] 16.540001,16.000000

这是我的第二次尝试(使用 NSNumberFormatter)

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
ordered.value = [f numberFromString:o.valore];
NSLog(@"%f,%f",[o.valore floatValue],[ordered.value floatValue]);

日志:

2013-05-20 20:16:22.781 Piazzetta[9951:c07] 232.179993,232.000000
2013-05-20 20:16:22.782 Piazzetta[9951:c07] 20159.490234,20159.000000
2013-05-20 20:16:22.782 Piazzetta[9951:c07] 16.540001,16.000000

最佳答案

我刚刚尝试了您代码的简化版本:

NSString *valore = @"232.179993";
NSNumber *ordered = [NSNumber numberWithFloat:[valore floatValue]];
NSLog(@"Results: %f,%f",[valore floatValue],[ordered floatValue]);

正如预期的那样工作:

// Results: 232.179993,232.179993

这让我相信它正在您的 ordered 对象中被修改(可能通过您的 value 属性的 setter 或 getter)。

如果您无法找到它,请发布 setter 和/或 getter 的代码,我们可以看看。

关于ios - NSNumber 丢失小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16655394/

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