(int)myDouble
は今まで(int)Math.Truncate(myDouble)
とは異なりますか?(int)myDoubleは(int)Math.Truncate(myDouble)と異なることはありますか?
私は他のものよりも優先させるべき理由はありますか?
(int)myDouble
は今まで(int)Math.Truncate(myDouble)
とは異なりますか?(int)myDoubleは(int)Math.Truncate(myDouble)と異なることはありますか?
私は他のものよりも優先させるべき理由はありますか?
Math.Truncate
は、結果を小数部なしの倍数として保存する必要がある場合に使用します。それをintに修復したい場合は、直接キャストを使用してください。
編集:
あなたは整数型にdoubleまたはfloat型の値から変換する場合、値は切り捨てられます。参考のため、ここでは「Explicit Numeric Conversions Table」から関連する文書があります。
としてはmyDoubleが大きすぎる場合(int)Math.Truncate(myDouble)
と同じように失敗しますイグナシオバスケス - エイブラムス(int)myDouble
によって指摘しました。
出力に違いはありませんが、(int)myDouble
は高速に動作しています。
後者はCLR APIの明白に定義された側面ですが、前者は明示的に同じですが、前者は言語仕様に依存していると思います。 –
私は 'Math.Truncate'を使うことは不要なステップだと思います。 – Oded
'Math.Truncate'は、結果を小数部分のない「double」として保持する必要がある場合に使用します。それを 'int'に修復したい場合は、キャストを使います。 – Douglas