我知道swift的Double值有15个小数点精度,所以我选了一个变量
let pi: Double = 3.1415926535897932384
和REPL回复了我
pi: Double = 3.1415926535897931
有一件事我可以清楚地看到,REPL已经完成了32384到31(如果出现溢出)。那么,它是否遵循标准数学规则进行四舍五入或其他事情。
答案 0 :(得分:1)
此行为必须如何以二进制表示浮点数。因此,转换为二进制不会舍入到下一个十进制表示,而是将其转换为下一个二进制表示。
// test this in a playground
9.05 // returns 9.050000000000001
一般来说,你不应该考虑双值的最后一位数。