我做一個簡單的四捨五入:爲什麼漂浮在這家目標C /可可代碼
float x = 151.185436;
printf("x=%f",x);
,其結果是
X = 151.185440
請告訴我錯在這裏?我要保留並打印我原來的151.185436
謝謝值 Amarsh
我做一個簡單的四捨五入:爲什麼漂浮在這家目標C /可可代碼
float x = 151.185436;
printf("x=%f",x);
,其結果是
X = 151.185440
請告訴我錯在這裏?我要保留並打印我原來的151.185436
謝謝值 Amarsh
彩車剛剛是不是很準確。嘗試雙倍。並閱讀:http://docs.sun.com/source/806-3568/ncg_goldberg.html
浮動不準確,使用雙打。另外,作爲你使用Objective C和不直c。如果您使用Objective C的功能這一點,可能會更好:
myNumber = [NSNumber numberWithDouble:151.185436];
NSLog(@"myNumber = %@", myNumber);
花車和雙打都「不準確」 - 這只是一個學位問題。 – 2010-03-20 15:44:45
一個浮點只能容納約你的電話號碼信息的32位(4個字節) - 它不能只存儲您需要的小數位數。 151.18544與您的價值差不多,浮動可以表示沒有用完比特。
對於您想要的精度,您需要使用double而不是float。
http://docs.sun.com/source/806-3568/ncg_goldberg.html – kennytm 2010-03-20 13:33:47