在溢出的情况下如何在 swift 中截断
How doubles truncate in swift in case of overflow
我知道 swift 的 Double 值有 15 个小数点精度所以我取了一个变量
let pi: Double = 3.1415926535897932384
REPL 返回我
pi: Double = 3.1415926535897931
有一件事我可以清楚地看到 REPL 已将 32384 舍入为 31(以防溢出)。那么,它是否遵循四舍五入或其他标准的数学规则。
此行为必须执行浮点数以二进制表示的方式。因此,转换为二进制不会四舍五入到下一个十进制表示形式,而是将其转换为下一个二进制表示形式。
// test this in a playground
9.05 // returns 9.050000000000001
一般情况下,您不应考虑双精度值的最后一位。
我知道 swift 的 Double 值有 15 个小数点精度所以我取了一个变量
let pi: Double = 3.1415926535897932384
REPL 返回我
pi: Double = 3.1415926535897931
有一件事我可以清楚地看到 REPL 已将 32384 舍入为 31(以防溢出)。那么,它是否遵循四舍五入或其他标准的数学规则。
此行为必须执行浮点数以二进制表示的方式。因此,转换为二进制不会四舍五入到下一个十进制表示形式,而是将其转换为下一个二进制表示形式。
// test this in a playground
9.05 // returns 9.050000000000001
一般情况下,您不应考虑双精度值的最后一位。