[問題] object C語法一問

看板MacDev作者 (GARFIELD~)時間14年前 (2010/10/21 16:15), 編輯推噓1(105)
留言6則, 5人參與, 最新討論串1/1
最近練習有關plist file read/write時,發現一個奇怪的問題, 我寫入一個float 3.14的值給一個key,但是讀plist檔時變成3.14000010490....等的值 是不是語法上有了什麼問題? 程式碼簡化如下: 寫檔: //plistDict是個給好檔案絕對位址的指標 [plistDict setValue:[NSNumber nuberWithFloat:3.14] forkey:@"float"]; [plistDict writeToFile:FilePath automically: YES]; 請知道可以幫忙解惑一下,謝謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 222.156.254.86

10/21 17:05, , 1F
用浮點數好像滿常出現這種情況的 我也想知道解決的方法
10/21 17:05, 1F

10/21 17:06, , 2F
感謝你提出來啊 !!
10/21 17:06, 2F

10/21 17:52, , 3F
囧rz~我後來找到了~用double就不會有這個問題了
10/21 17:52, 3F

10/22 00:03, , 4F
浮點數本來就會這樣, 你用 double 也不能保證永遠不會...
10/22 00:03, 4F

10/22 11:05, , 5F
這就是二進位世界啊!
10/22 11:05, 5F

10/22 12:57, , 6F
float的準確度好像就是到十進位小數後第六位
10/22 12:57, 6F
文章代碼(AID): #1Cl_Q4Oz (MacDev)
文章代碼(AID): #1Cl_Q4Oz (MacDev)