【发布时间】:2017-04-29 13:07:43
【问题描述】:
Rust 的f64 类型提供了函数round(),它舍入到最接近的整数,但它返回一个f64。另一方面,Java 的 Math.round(double) 返回一个 long。我可以调用round(),然后转换为i64,但这能保证我得到正确的结果吗?在这里,“正确”意味着获得最接近的 i64 — Java 的 round() 返回“最接近的长”。
【问题讨论】:
-
如果
f64是整数但超出i64的范围,您希望发生什么? -
@ChrisEmerson 在这种情况下,Java 似乎将
1e100舍入到9223372036854775807。
标签: floating-point rust precision