2011-06-21 40 views
1

您好我有一個NSString floatValue函數的問題,如果用戶插入多於六個十進制數字floatValue函數圓形數據。Xcode [NSString floatValue]舍入問題

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

結果9.999999

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

結果10 ??????

有人可以幫我解決它嗎? 在此先感謝!

回答

5

不能使用浮點數來管理數精度 使用NSDecimalNumber

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

礦字符串值爲2499.255它被轉化爲2499.25488在這種情況下NSDecimalNumber給不給我的精確值.. – Leena

+0

使用[Decimal doubleValue],它會更接近 – mskw