ページ 11

64ビット整数の演算結果

Posted: 2005年11月16日(水) 20:19
by hira

コード: 全て選択

Dim a As Int64
a=123456789123456
a=a/10000
このとき、「12345678912」となるべきaの値が「12345678848」となってしまいます。
調査をお願いします。

※何故か \ 演算子で割る場合は問題なしです…。もしかしてDouble型の精度が関係しているとか?

Posted: 2005年11月16日(水) 20:47
by イグトランス
こういうときには整数除算演算子 \ を使ってみると良いです。
こちらでは問題ありません。

コード: 全て選択

#prompt
#strict

Dim a As Int64
a = 123456789123456
a = a \ 10000

Print a
というわけで / 演算子では実数型で計算されているのでしょう。

円記号は違和感があるので、私は \ がバックスラッシュになるフォントを使っています。

Posted: 2005年11月16日(水) 21:00
by hira
ありがとうございます。
やはり内部の計算が実数で行われているようですね。
今回は \ 演算子で解決できる内容でしたので、それでいきたいと思います。