簡體   English   中英

CGFloat 比 Double 更准確嗎?

[英]Is CGFloat more accurate than Double?

Double 和 CGFloat 都向控制台打印相同的值 (#2),但只有 Double 發出警告 (#1):

(#1) - 警告

警告

(#2) - 將每個打印到控制台

DOUBLE  = 9.223372036854776e+18
CGFLOAT = 9.223372036854776e+18

許多文章提到 CGFloat 在 32 位平台上是 Float,在 64 位平台上是 Double,但這不只是指后備存儲嗎? 是否有更多幕后活動導致 CGFloat 比 Double 更准確?

CGFloat不代表BigDecimal類型的數字,具有無限精度。 CGFloat 被定義為包含DoubleFloatstruct ,具體取決於您是在 32 位還是 64 位平台上; 即,在 64 位平台上,它等同Double沒有更多或更少的精度或范圍

您看到的警告中的不同之處在於, Double是 Swift 的原生類型,編譯器知道它,並且有足夠的信息來提供這樣的警告。 然而, CGFloat是由 Apple 框架定義的,編譯器對它的了解不足以產生這樣的警告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM