概要
Rustで小数点以下の位を指定して四捨五入する時、どのような実装があるかのメモ書きです。
実装方針としてFloating-point cheat sheet for Rustの記事にある通り、format
を使う方針とrust_decimal
のライブラリを使うやり方が取り急ぎ考えられそうです。今回はrust_decimal
を使ってみましたので、そのメモ書きです。
前提
- 使用したrustcのバージョンは
1.78.0
です。 - 使用したrust_decimalのバージョンは
1.35.0
です。
実装サンプル
今回はfloatの変数からDecimal型のインスタンスを生成して四捨五入し、小数点第二位まで取得するものを実装してみました。
FromPrimitiveのドキュメントにある通りDecimal型を取得する際にOptionで包まれるので、mapで四捨五入をする形が以下になります。
Decimal::from_f32(value_float).map(|d| d.round_dp(2))