• S
    Add `{f32,f64}::approx_unchecked_to<Int>` unsafe methods · cba479f7
    Simon Sapin 提交于
    As discussed in https://github.com/rust-lang/rust/issues/10184
    
    Currently, casting a floating point number to an integer with `as` is Undefined Behavior if the value is out of range. `-Z saturating-float-casts` fixes this soundness hole by making `as` “saturate” to the maximum or minimum value of the integer type (or zero for `NaN`), but has measurable negative performance impact in some benchmarks. There is some consensus in that thread for enabling saturation by default anyway, but provide an `unsafe fn` alternative for users who know through some other mean that their values are in range.
    cba479f7
f64.rs 19.9 KB