トピック
タバひめ tabahime

質問です。数値を文字列にしたいのですが、7桁の数字を入れた数値型変数を使うと変な数字がでました。なぜでしょうか?

A=666666 B=7777777 A1$=STR$(666666) B1$=STR$(7777777) A2$=STR$(A) B2$=STR$(B) ? A1$ ? B1$ ? A2$ ? B2$ 実行結果 666666 7777777 666666 7.77778e+06
0そうだね
プレイ済み
返信[1]
親投稿
タバひめ tabahime
さらに文字列変数を数値型変数に直すと、 B2=VAL(B2$) ? B2 実行結果 7777780 と、切り上げられてしまいました。
0そうだね
プレイ済み
返信[2]
親投稿
指数表記になってるんだと思います。 指数表記にしない高精度な変換はおちゃめさんが作って公開していたような気がします。
1そうだね
プレイ済み
返信[3]
親投稿
タバひめ tabahime
ありがとうございます。おちゃめさんの投稿見てきました。話しは難しくて分かりませんが、PSTR$を使えば高精度な変換ができるようですね。
0そうだね
プレイ済み
返信[4]
親投稿
ケイン KEIN.HORGAN
でんぺんさんのおっしゃられる通り、指数表記になっています。 通常の数値型変数に大きな数値を入れた場合こうなる、のかな。 ※7.77778e+06 というのは、7.77778 * 10の6乗( = 7777780)という意味です。 色々すっ飛ばすと、 B%=7777777 とすると、とりあえず今回の件は解決すると思います。 ※B% とは、「整数型」と呼ばれる変数型です。 (プチコンのスペック表に記載があります) 整数型を使う場合、通常の数値型変数に比べて 「整数しか扱えない」「大きな数値は扱えない」 という事に注意してください
1そうだね
プレイ済み
返信[5]
親投稿
タバひめ tabahime
ケインさんありがとうございます。難しいことを考えずにB%を使ってみようと思います。指数表記のことも分かりました。
0そうだね
プレイ済み