-2

C ++バージョンと一致するようにC#でfloor(x)の実装を探しています。

floor of 2.3 is 2.0
floor of 3.8 is 3.0
floor of -2.3 is -3.0
floor of -3.8 is -4.0

C ++レビューアが私のコードをチェックするfloorので、彼が(最後に残っている)髪の毛を抜かないように、C#でどのような実装が合理的ですか?

4

3 に答える 3

6

Mathクラスを使用できます。の多くのオーバーロードされた形式がありますMath.Floor

  1. Math.Floor(Double)
  2. Math.Floor(Decimal)

簡単な使用法:

Math.Floor(2.3) // == 2.0
Math.Floor(3.8) // == 3.0
Math.Floor(-2.3) // == -3.0
Math.Floor(-3.8) // == -4.0
于 2013-03-07T02:14:32.353 に答える
3

を使用するだけMath.Floorです。C ++と同様に、負の無限大に向かって丸められますfloorドキュメントから:

このメソッドの動作は、IEEE標準754のセクション4に従います。この種の丸めは、負の無限大への丸めと呼ばれることもあります。つまり、dが正の場合、小数部分は切り捨てられます。dが負の場合、小数成分が存在すると、小さい方の整数に丸められます。

于 2013-03-07T02:14:53.320 に答える
1

数学ライブラリはあなたが必要とすることをします。ドキュメントはこちらです。さらに重要なことに、フロアという用語は、常に説明どおりに動作するように定義されています。数学的な床関数の詳細については、ウィキペディアを参照してください

于 2013-03-07T02:15:40.357 に答える