Xcode [NSString floatValue]舍入问题

时间:2011-06-21 14:44:41

标签: xcode4 nsstring rounding

嗨我有一个NSString floatValue函数的问题,如果用户插入超过六位十进制数的floatValue函数Round数据。

NSString *String = @"9.999999";
NSLog(@"Var Float: %f",[String floatValue]);

结果9.999999

NSString *String = @"9.9999999";
NSLog(@"Var Float: %f",[String floatValue]);

结果10 ??????

有人可以帮我解决吗? 提前谢谢!

1 个答案:

答案 0 :(得分:5)

您不能使用float来管理数字精度 使用NSDecimalNumber

NSString *Stringa = @"9.9999999";
NSDecimalNumber *Decimal = [[NSDecimalNumber alloc] initWithString:Stringa];
NSLog(@"Var Float: %f",[Decimal floatValue]);
NSLog(@"Var Float: %@",[Decimal stringValue]);