-
丸め処理を行わない変換:
fn float_to_money(value: f64) -> i64 { (value * 100.0).round() as i64 } fn main() { let amount: f64 = 1234.56; let money: i64 = float_to_money(amount); println!("金額: {}", money); }
-
丸め処理を行う変換(最も一般的な方法):
use std::num::FpCategory; fn float_to_money(value: f64) -> i64 { match value.classify() { FpCategory::Nan | FpCategory::Infinite => panic!("無効な値です。"), _ => (value * 100.0).round() as i64, } } fn main() { let amount: f64 = 1234.56; let money: i64 = float_to_money(amount); println!("金額: {}", money); }
-
カスタムの丸め処理を行う変換:
use std::num::FpCategory; fn float_to_money(value: f64) -> i64 { match value.classify() { FpCategory::Nan | FpCategory::Infinite => panic!("無効な値です。"), _ => (value * 100.0 + 0.5).floor() as i64, } } fn main() { let amount: f64 = 1234.56; let money: i64 = float_to_money(amount); println!("金額: {}", money); }
これらの方法を使用して、浮動小数点数を金額に変換することができます。選択する方法は、アプリケーションの要件や使用する通貨のルールによって異なる場合があります。必要に応じて、カスタムの丸め処理ロジックを追加することもできます。