Xcode [NSString floatValue]舍入问题

Tom*_*aso 1 rounding nsstring xcode4

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

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

结果9.999999

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

结果10 ??????

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

Tom*_*aso 5

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

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