投稿
桁が大きい数字を表示させると、「1e+10」になってしまいますよね。 もし、それを解決させるプログラム・サンプルがあれば、コメントに書いてくれませんか?
0そうだね
プレイ済み
返信[1]
親投稿
追記:それを『足し算・引き算させる事ができる』サンプル・プログラムをお願いします。
0そうだね
プレイ済み
返信[2]
親投稿
ねこはち neko80001
自分の場合は表示させる時にformat命令を使っています 12桁の金額と経験値を扱ってますが問題ないですよ
0そうだね
プレイ済み
返信[3]
親投稿
けい kei0baisoku
今手元で試したら、10桁越えても指数表記にならなかったのですが、更新で挙動変わったりしましたでしょうか? 前は確かそのくらいだとFORMAT使わないとたいてい指数表記になっていたと思うのですが(-ω-)
0そうだね
プレイ済み
返信[4]
親投稿
ねこはち neko80001
>>けいさん 生数値を表示したい場合は問題ないのですが、STR$の内部処理で精度が落とされているので、8桁超えると指数表記になってしまうのです 自分もこれで悩まされて、一時はコンソールに透明文字で描いてCHKCHRで拾う等、わけのわからない処理をしてたりしましたw
1そうだね
プレイ済み
返信[5]
親投稿
ish owlis1
3号、64ビットの浮動小数点数型(Cで言う所のdouble 型)が使えるんですね。精度的には整数部で15桁程度。すごいなプチコン。 さて問題を切り分けてみました。 1.指数表記になる件 A=1000000000 B=1000000000 ?"1:";A+B ?"2:";STR$(A+B) ?"3:";FORMAT("%D",A+B) 2の方法は確かに指数になることを確認。 2.大きな桁での計算について 「64ビットの浮動小数点数型」以外の精度が必要な数値を扱う場合、「高い精度の数値型を扱う」関数を自作する必要かもしれません。
0そうだね
プレイ済み
返信[6]
親投稿
P£titP0cky taroson
表示したいだけなら N=99999999999 ? N というふうにし、文字も一緒に表示したいなら N=999999999 ? "文字",N というふうにしたらいいと思う。
0そうだね
プレイ済み
返信[7]
親投稿
けい kei0baisoku
>ねこはちさん ありがとうございます。 文字列に変換するときですね。思い出しました。 元々近い機能の関数ですが、表記にこだわりたいときはFORMATが適切そうですね。
1そうだね
プレイ済み