【发布时间】:2012-04-20 22:06:20
【问题描述】:
我有这个示例代码:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSString *numberString = @"9.2";
NSNumber *number = [formatter numberFromString:numberString];
NSLog(@"String: %@, Number: %@", numberString, number);
打印出来的结果是:
String: 9.2, Number: 9.199999999999999
我不明白为什么会发生这种情况。我错过了一个设置吗?
【问题讨论】:
-
欢迎来到浮点数的奇妙世界。最接近 9.2 的
double实际上是 9.199999999999999289457264239899814128875732421875。 -
看起来格式化程序正在将其转换为浮点数以创建数字......奇数
-
因为他不用花车?
-
嗯,奇怪的是我以前没有遇到过这个。有什么地方可以让我了解更多相关信息吗?
-
@lnafziger 什么是类型的
NSNumber?
标签: cocoa-touch cocoa