0
執行以下操作時:如何獲得doubleValue返回六位以上的十進制數?
NSString * scratchString = @「。123456789」;
CGFloat scratchNum = [scratchString doubleValue];
scrathNum包含0.123457
我怎樣才能得到scratchNum包含所有的數字?無論我嘗試什麼,它都會到達6個地方。
執行以下操作時:如何獲得doubleValue返回六位以上的十進制數?
NSString * scratchString = @「。123456789」;
CGFloat scratchNum = [scratchString doubleValue];
scrathNum包含0.123457
我怎樣才能得到scratchNum包含所有的數字?無論我嘗試什麼,它都會到達6個地方。
CGFloat
是一個浮點數 - 一個float
或double
(取決於哪個typedef
由編譯器選擇)。
沒有浮點數不包含「包含所有數字」的概念。他們的內部表示會有所不同,但在這種情況下,您的代碼爲IEEE 754 standard。
在這種情況下,您的「四捨五入」是任何採用該浮點數並將其從二進制形式轉換爲文本形式的結果。這可能是Xcode IDE本身(例如,可視化調試器中的值),或者您正在使用printf
語句並且指定了特定的格式。
我明白了。但是我寫了一小段代碼:short i = 0; ((scratchNum-floor(scratchNum))!= 0)scratchNum = [scratchString doubleValue] * pow(10,++ i); } 在這種情況下,循環結束時I = 6。那也是Xcode嗎? –