17

(int)myDoubleと違うことはあり(int)Math.Truncate(myDouble)ますか?

どちらか一方を優先する理由はありますか?

4

2 に答える 2

12

Math.Truncate結果を小数部のないdoubleとして保持する必要がある場合を対象としています。それをintに変換したい場合は、キャストを直接使用してください。

編集:参考のために、「<ahref="http://msdn.microsoft.com/en-us/library/yht2cx7b.aspx"rel="noreferrer">明示的な数値変換テーブル」の関連ドキュメントを次に示します。

doubleまたはfloat値から整数型に変換すると、値は切り捨てられます。

于 2012-06-17T18:08:12.000 に答える
6

Ignacio Vazquezが 指摘したように、myDoubleが大きすぎる場合(int)myDoubleと同じように、Abramsは失敗します。(int)Math.Truncate(myDouble)

したがって、出力に違いはありませんが、(int)myDoubleより高速に動作しています。

于 2012-06-17T18:08:12.893 に答える