diff --git a/book/contents/basic/base-type/numbers.md b/book/contents/basic/base-type/numbers.md index 976a33da..1503897a 100644 --- a/book/contents/basic/base-type/numbers.md +++ b/book/contents/basic/base-type/numbers.md @@ -156,7 +156,7 @@ fn main() { 你可能以为,这段代码没啥问题吧,实际上它会 *panic*(程序崩溃,抛出异常),因为二进制精度问题,导致了 0.1 + 0.2 并不严格等于 0.3,它们可能在小数点 N 位后存在误差。 -那如果非要进行比较呢?可以考虑用这种方式 `(0.1 + 0.2 - 0.3).abs() < 0.00001` ,具体小于多少,取决于你对精度的需求。 +那如果非要进行比较呢?可以考虑用这种方式 `(0.1_f64 + 0.2 - 0.3).abs() < 0.00001` ,具体小于多少,取决于你对精度的需求。 讲到这里,相信大家基本已经明白了,为什么操作浮点数时要格外的小心,但是还不够,下面再来一段代码,直接震撼你的灵魂: diff --git a/book/contents/basic/variable.md b/book/contents/basic/variable.md index 6eda65e5..d10a4b81 100644 --- a/book/contents/basic/variable.md +++ b/book/contents/basic/variable.md @@ -61,7 +61,7 @@ error[E0384]: cannot assign twice to immutable variable `x` error: aborting due to previous error ``` -具体的错误原因是 `cannot assign twice to immutable variable x`(对不可变的变量无法进行二次再赋值),因为我们尝试给不可变的 `x` 变量赋予第二个值。 +具体的错误原因是 `cannot assign twice to immutable variable x`(对不可变的变量无法进行二次再赋值),因为我们尝试给不可变的 `x` 变量赋予了第二个值。 这种错误是为了避免无法预期的错误发生在我们的变量上:一个变量往往被多处代码所使用,其中一部分代码假定该变量的值永远不会改变,而另外一部分代码却无情的改变了这个值,在实际开发过程中,这个错误是很难被发现的,特别是在多线程编程中。