ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
-
hira
- 記事: 203
- 登録日時: 2005年5月31日(火) 20:14
- お住まい: 兵庫県
#1
投稿記事
by hira »
コード: 全て選択
Dim a As Int64
a=123456789123456
a=a/10000
このとき、「12345678912」となるべきaの値が「12345678848」となってしまいます。
調査をお願いします。
※何故か \ 演算子で割る場合は問題なしです…。もしかしてDouble型の精度が関係しているとか?
-
イグトランス
- 記事: 899
- 登録日時: 2005年5月31日(火) 17:59
- お住まい: 東京都
#2
投稿記事
by イグトランス »
こういうときには整数除算演算子 \ を使ってみると良いです。
こちらでは問題ありません。
コード: 全て選択
#prompt
#strict
Dim a As Int64
a = 123456789123456
a = a \ 10000
Print a
というわけで / 演算子では実数型で計算されているのでしょう。
円記号は違和感があるので、私は \ がバックスラッシュになるフォントを使っています。
-
hira
- 記事: 203
- 登録日時: 2005年5月31日(火) 20:14
- お住まい: 兵庫県
#3
投稿記事
by hira »
ありがとうございます。
やはり内部の計算が実数で行われているようですね。
今回は \ 演算子で解決できる内容でしたので、それでいきたいと思います。