我有一個CGFloat屬性,有時我會得到類型爲Float64或類型爲Float32的返回值。我可以安全地將它們存儲到CGFloat嗎?我可以安全地使用CGFloat來保存Float64或Float32值嗎?
0
A
回答
2
從標題:
// CGBase.h
typedef float CGFloat;
// MacTypes.h
typedef float Float32;
typedef double Float64;
所以CGFloat
和Float32
都是float
s,而Float64
是double
,所以你會失去精度。
(編輯澄清:這是32位系統(如iPhone)如果你正在爲64位,CGFloat
被定義爲double
)
1
它總是試圖存儲標量值的最佳實踐與您收到的類型相同,因爲標量類型的精度隨硬件而變化。
在所有當前和未來的硬件上,CGFloat並不總是保證大小相同。如果你用另一種類型替代它,或者用它來存儲另一種類型,你的代碼會在某個地方停下來。
當新的iPhone/iPad出來或者如果您嘗試將其移植到Mac時代碼可能會中斷,您可能會獲得或失去精度。
相關問題
- 1. Float64到Float32
- 2. Malloc可以安全地使用nogil嗎?
- 3. 我可以使用匿名lambdas來保存靜態值嗎?
- 4. php變量可以安全地保存有害代碼嗎?
- 5. 我可以安全地使用域URI
- 6. 可以安全地使用zlib.crc32或zlib.adler32來掩蓋URL中的主鍵嗎?
- 7. 我可以安全地使用utf8mb4列的utf8連接嗎?
- 8. 當SynchronizationContext.Current爲空時,我可以安全地使用Task.Wait嗎?
- 9. 現在我們可以使用diagnostics.wadcfgx安全地刪除diagnostics.wadcfg嗎?
- 10. sync.WaitGroup可以安全地重用嗎?
- 11. 可以安全地應用補丁嗎?
- 12. Ansible安裝了Git嗎?我可以安全地刪除它嗎?
- 13. 我可以安全地將UInt32存儲到NSUInteger中嗎?
- 14. 哪裏可以安全地保存我的重要文件?
- 15. 我可以使用ObjectOutputStream保存ImageIcon嗎?
- 16. 我可以在Apache模塊中安全地使用Boost和/或C++庫嗎?
- 17. 可以使用資源來保存重要的值嗎?
- 18. 我可以使用精度爲(float32)的python float嗎?
- 19. 我可以使用R屬性來保存物理單位嗎?
- 20. 安全地保存常數值
- 21. ngx.shared.DICT可以安全使用嗎?
- 22. JDK7現在可以安全使用嗎?
- 23. AesCryptoServiceProvider.GenerateKey可以安全使用嗎?
- 24. 可以安全使用dompdf + file_get_contents嗎?
- 25. scrapy.conf可以安全使用嗎?
- 26. 如果我從CSRF安全,我可以安全使用垃圾郵件嗎?
- 27. ID(來自mongo的ObjectIds)可安全地在URL中使用嗎?
- 28. 我可以安全地重命名我的Subversion項目嗎?
- 29. 用戶代碼可以安全地使用struct padding嗎?
- 30. 如何將CGFloat安全地放置或放置到int?