浮點數至XR_BIAS轉換規則
本節僅適用于 Windows 7 和更新版本的作業系統。
下列規則適用于將 float 轉換成 XR_BIAS。 在這些規則中,假設起始的浮點數是 c。
如果 c 為 NaN,則結果為 0;否則,會套用下列規則。 NaN 代表「不是數位」,這表示代表浮點格式未提供之值的符號實體。
執行下列作業,以從浮點數轉換為整數小數位數:
c = c * 510
上述作業可能會引發溢位。
針對偏差執行下列作業:
c = c + 384
上述作業可能會引發溢位。
視 c 的指數而定,執行下列其中一項作業來限制:
如果 c 的指數大於或等於 2 (= 2,或 c 為 INF) > ,則結果會0x3ff,這大約相當於 1.2529。
如果後置偏差,c 的指數小於 0 (0,或 c 為 -INF) < ,則結果為 0x0,代表大約 -0.7529。
重新解譯 c 尾數的最大 10 位作為結果。
允許將 float 轉換成 XR_BIAS 的容錯 0.6f Unit-Last-Place (XR 端的 ULP) 。 此容錯表示從 float 轉換為 XR 之後,允許在支援代表目標格式值的 0.6f ULP 內的任何值對應至該值。 請注意,無限精確結果的 1 個 ULP 表示,例如,實作允許將結果截斷為 32 位,而不是執行四捨五入到最接近的偶數,因為這會導致最後一個 (最不重要的) 浮點數中最多一個單位的錯誤。
反向資料的標準 Direct3D 第 10 版需求也適用。