conv
クレートはこれを処理するように設計されています。 ValueFrom
/ValueInto
形質は、入力値を出力タイプで正確に表現できない場合にエラーを返す値保存型変換を実行します。たとえば、次のように
/*!
Add this to your `Cargo.toml`:
```cargo
[dependencies]
conv = "0.3.2"
```
*/
extern crate conv;
use conv::prelude::*;
fn main() {
let a = std::u32::MAX;
println!("u32::MAX -> f32: {:?}", a.value_as::<f32>());
println!("u32::MAX -> f64: {:?}", a.value_as::<f64>());
}
出力:
は
u32::MAX -> f32: Err(PosOverflow(..))
u32::MAX -> f64: Ok(4294967295)
代わりに、あなたがチェックconv
を複製することができますが、手で行います。入力整数は整数の範囲外の浮動小数点型を正確にすることができ該当しないことを確認してください表す。具体的に:
f32
:16777215
f64
±:9,007,199,254,740,991
±