あるプログラムをBASICからVB.NETへ移植しているのですが、Double型などの小数の誤差に困っています。BASICでの計算結果は小数何位から丸められるなどの、参考になる資料やページがありましたら教えていただけませんか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/01/24 11:23:45
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:Beirii No.1

回答回数173ベストアンサー獲得回数18

ポイント100pt

http://www3.plala.or.jp/bountyhunter/lesson02.html

実数型の有効桁数ですが、単精度で7桁、倍精度で16桁くらいと考えていいそうです。

#有効桁数ですので、小数何位という表現ではないところご注意ください。


ちなみに、

http://www.orange.ne.jp/~kibita/n88/chap3.html

3.3.数値型のところに、『N88BASICでは,整数型と実数型(単・倍精度)があります。記号(%,!,#)を省略した場合は単精度実数型です。』とあります。

即ち、N88BASICの場合は変数名の最後に#がついていない変数はSingle型(単精度)となるそうですが、この辺は大丈夫でしたでしょうか?

#もちろん知ってるよ!と言う場合はゴメンナサイ><


なお、1つ目のサイトのBASICは厳密には『N88互換BASIC for Windows95』となっており、このBASICでは#がついていない場合は倍精度なのだそうです。


また、元のプログラムで使用したBASICがN88BASIC(およびN88互換BASIC for Windows95)以外の場合は、必ずしも上記のような仕様でははい可能性もあります。

元のプログラムで使用したBASICについて詳しい情報を教えていただければ、ピンポイントな回答が得られる場合もあると思いますのでご一考ください。

id:lains_you

 小数を含む#付きDouble型変数を引数としてInt関数を呼び出した際、何故か小数第一位で四捨五入もしくは繰り上げになっていたため、質問させていただきました。

 BASICのデバッグ環境がないため、詰まっています。とりあえずVB.NET側の変数をDecimal型にしたところ、同じ値となることはわかりましたが、いまだ理由が理解できません。

2007/01/19 14:34:48

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません