DoubleからIntegerへのキャストがなぞい

doubleからintへのキャストの動作、確か僕が記憶している限りではCやJavaや、あとC#は小数点切り捨てゴーメンだったと記憶しているのですが、なんだかVBはちょっと違うもよう?
しかも今回のケースでは、同じVB.NET同士の2003と2010で発生しているんだから解せない。


現在僕は2003だかのクライアントアプリをASP.NETに移行しろよコンチクショー! っていうお仕事をしているのですが、そいつの元のソースが2003のVBなんだよね。
そこで一つ、理解に苦しむ計算をしている部分があるんだけど、そこの動作がどうにもおかしい。何せ理解に苦しむ計算な上に、一切のドキュメントが残っていないのでその部分はそのまま写しているのだけれど、どうも計算結果が違う。


ここで冒頭の、つまりdoubleからintへのキャストのお話が出てくるんだけど、問題になる値は'909.598なんとかかんとか……'
複雑怪奇な計算を経て生まれたこの数値を一度intへキャストした後に10で割る、という動作をしているわけだ。

古い方のコードでは、intへキャストした結果は909となる。
んでも新しい方(VS2010)は、どうやら910になっているみたい。

解せない。確かVB6とかでは、むしろ四捨五入がデフォの動作(確かそれも結構トンデモな動きだった記憶があるけど)のはずなのに、古い方が切り捨ての動作をしているってーのは解せない………
新しい世界へ踏み出せない情弱の為だけに存続しているようなVB.NETが、こんなところの動作を変えるってのはなかなか想像がつかない。
あるいは、事前の部分で何か見落としがあってすでに今回の誤差が出てしまっている?


とりあえず明日会社出たらまたちゃんと調べてみよう……。ま、なんにせよ解決は簡単そうである。
しかしなんだ、ちゃんとした情報系の素養がないから、こういう演算だとか丸めがなんとかっつー問題がちーっともわからない。これは今後の課題なのかもなぁ。