[解決済み] C# 小数点以下2桁を丸める。切り捨てと丸め
2022-02-25 12:41:12
質問
floatを小数点以下2桁に丸めるとき、TruncateとRoundのどちらが有利か、不利か教えてください。
float number = 3.4567070
Math.Round(number, 2)
Math.Truncate(100 * number) / 100
どれが最適で効率的ですか?どのような場合にroundを使用し、どのような場合にtruncateを使用するのでしょうか?
どのように解決するのですか?
Truncateの方がわずかに効率的ですが、これらは非常に異なる機能です。
-
Math.Round
は、指定された精度で入力に最も近い数を計算します。値を最も近い整数または指定された小数点以下の桁数に丸めます。
-
Math.Truncate
は、小数点以下の任意の桁を実質的に無視します。常にゼロに最も近い整数に丸められます。数値の積分部分を計算します。
どの関数を使うべきかは、実装しようとしているロジックに完全に依存します。
各関数の出力例を簡単にご紹介します。
Input | Round | Truncate
------+-------+---------
-1.6 | -2 | -1
-1.5 | -2 | -1
-1.4 | -1 | -1
-0.5 | 0 | 0
0.5 | 0 | 0
1.4 | 1 | 1
1.5 | 2 | 1
1.6 | 2 | 1
関連
-
[解決済み】なぜこのコードはInvalidOperationExceptionを投げるのですか?
-
[解決済み] FOREIGN KEY制約で参照されているため、テーブルを切り捨てることができないのですか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] 型チェック:typeof、GetType、is?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] 数字を切り上げるには?
-
[解決済み】SQL Serverで小数点以下を切り捨てる(丸めない)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Excel "外部テーブルが期待された形式ではありません。"
-
[解決済み】「namespace x already contains a definition for x」エラーの修正方法は?VS2010にコンバートした後に発生しました。
-
[解決済み】なぜこのコードはInvalidOperationExceptionを投げるのですか?
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】「namespace」なのに「type」のように使われる。
-
[解決済み】WebResource.axdとは何ですか?
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015