最近在做項目的過程中,偶然遇到了一個問題,就是字符串和浮點類型的轉換。以往都是通過[NSString stringWithFormat:@"%d",goodcount]這種方式轉換,並沒有太在意。今天一個項目中的客戶反饋在輸入很長的數字后,浮點類型的數據顯示和輸入的不一致。經過反復的測試發現,原來浮點類型的float只能支持到8位,也就是說12345678這樣的數字通過float類型是沒有問題的,但是如果超過八位以后NSString *temstr=@"1234567890"; NSLog(@"數據類型%.2f,%.2f",[temstr floatValue],[temstr doubleValue]); 打印輸出 數據類型1234567936.00,1234567890.00。原來float類型的最大容量是8位,而double類型的容量為16位,所以在項目開發過程中字符串和浮點類型的轉換最好用double類型。但是double類型如果超出16位也會失真(NSString *temstr=@"123456789012345678"; NSLog(@"數據類型%.2f,%.2f",[temstr floatValue],[temstr doubleValue]); 打印輸出數據類型123456790519087104.00,123456789012345680.00),不過已經夠用了。