Discussion 解説
The IEEE 754 specification defines a canonical, or preferred, encoding of a floating-point value. On platforms that fully support IEEE 754, every Float
or Double
value is canonical, but non-canonical values can exist on other platforms or for other types. Some examples:
IEEE 754仕様は、ある正準の、または推奨の、浮動小数点値のエンコーディングを定義します。完全にIEEE 754をサポートするプラットホーム上では、あらゆるFloat
またはDouble
値は正準です、しかし非正準値は他のプラットホーム上でまたは他の型に対して存在できます。いくつかの例:
On platforms that flush subnormal numbers to zero (such as armv7 with the default floating-point environment), Swift interprets subnormal
Float
andDouble
values as non-canonical zeros. (In Swift 5.1 and earlier,is
isCanonical true
for these values, which is the incorrect value.) 非正規化数をゼロへとフラッシュするプラットホーム(たとえば省略時の浮動小数点環境でのarmv7)上では、Swiftは非正規化数Float
およびDouble
値を非正準のゼロとして解釈します。(Swift 5.1およびそれより前では、is
はこれらの値に対してCanonical true
です、それは不正確な値です。)On i386 and x86_64,
Float80
has a number of non-canonical encodings. “Pseudo-NaNs”, “pseudo-infinities”, and “unnormals” are interpreted as non-canonical NaN encodings. “Pseudo-denormals” are interpreted as non-canonical encodings of subnormal values. i386およびx86_64では、Float80
は非正準エンコーディングのある数を持ちます。“Pseudo-NaN”、“pseudo-infinitie”、そして“unnormal”は、非正準NaNエンコーディングとして解釈されます。.“Pseudo-denormal”は、非正規化数値の非正準エンコーディングとして解釈されます。Decimal floating-point types admit a large number of non-canonical encodings. Consult the IEEE 754 standard for additional details. 10進浮動小数点型は、多数の非正準エンコーディングを認めます。IEEE 754標準をさらなる詳細として参照してください。