2010年4月15日木曜日

[.NET]C#の割り算

先日、割り算を実施し小数点以下2桁で四捨五入する。という仕様の処理をテストしていました。しかしどのパターンでも小数点以下の結果が入らず、テストNGとなりました。
で調べてみると、演算対象の両方の値がint同士であることがわかりました。C#ではint/byte/long同士の割り算では、結果が切り捨てられてしまいます。

ということで、片方をdoubleでキャストし、割り算をした結果、想定どおりになりました。
めでたしめでたし。・・・こういうのって、言語仕様を知らないのは、技術者として罪のような気がしました。

0 件のコメント: