コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
R_006号 ◆2Z/Wom0eRu9/
2018/10/13 23:39
質問
教えてください!
変数の特定の桁の数字を調べるというものを作りたかったのですが…
うまくいきませんでした。のおおおお}ノ(−v−;ノ{なんと無知な……
どうすればうまくいくか、わかる方教えて頂けると嬉しいです。

コメント

アバター
ホラムーン 2018/10/13 23:42 ◆uyXAks2Ee1EU
LENという関数で文字数を調べられます。
なのでSTR$で数値を文字列に変えてからLENでいけると思います、多分。
アバター
R_006号 2018/10/13 23:57 ◆2Z/Wom0eRu9/
すみません、説明不足だったかもしれません。
1248という数字があるのに対して
1桁目=1
2桁目=2
3桁目=4
4桁目=8
というように、何桁目の数字がいくつかわかるようにしたいのです。
(それともひょっとして僕、LENの解釈間違ってますかね(・△・;)不安)
アバター
はる 2018/10/14 0:04 ◆75Vh4SY8TdKS
○桁目の数字$=STR$(数値)[桁]




ACLS
A=236547898
PRINT A
A$=STR$(A)
FOR D=1 TO 9'ケタすう
S$=A$[D-1]
PRINT D;"けためは…";S$
NEXT
アバター
R_006号 2018/10/14 0:17 ◆2Z/Wom0eRu9/
どちらを実行してもこうなってしまうのですが…これってやっぱり仕様なんですかね(−△−;ゞ
アバター
でんぺん 2018/10/14 0:45 ◆HfSy5ayxtyTa
はるさんのプログラムでもそうなりました?
実際に打ち込んだはるさんのプログラムのスクリーンショットも載せてみて欲しいです。
アバター
R_006号 2018/10/14 1:00 ◆2Z/Wom0eRu9/
こんな感じです。
ひょっとして僕、何か間違えてますかね?Σ(・□・`;)
アバター
R_006号 2018/10/14 1:05 ◆2Z/Wom0eRu9/
あと、すみません。
実行結果の画像間違えてました。上の方にある実行結果の画像が僕のプログラム。
こっちの画像がはるさんのプラグラムを実行した方です。
アバター
でんぺん 2018/10/14 1:17 ◆HfSy5ayxtyTa
あー。原因としては文字に変換するときに指数表記になっちゃってる感じですね…。

解決策としては、A$=STR$(A)のところを、A$=FORMAT$("%D", A)にするのが手っ取り早そうですね。
アバター
R_006号 2018/10/14 1:31 ◆2Z/Wom0eRu9/
うぉおお…できました!
本当に助かりました!
ホラムーンさん、はるさん、でんぺんさん、ありがとうございます!
アバター
こういち 2018/10/14 5:19 ◆ou0jbJnEJ0Kb
一応log()とMODを使う方法もあると言ってみる。(ただしあまりにもデカい数は調べられない。)
アバター
おちゃめ 2018/10/14 7:19 ◆jH1opV6FnGyx
すでに解決されたみたいですが、この件について解説するとプチコン3号は実数型の数値変数(標準で使える変数)をSTR$を使って文字列に変換した場合には有効桁数が6桁に丸められるためです。
これはでんぺんさんが書かれているようにFORMAT$を使うことで解決が可能ですが、整数値のみを扱うのであれば整数型変数(A%のように末尾に「%」を付けた変数)を使うことで解決することも可能です。

詳しくはこちらをご覧になってください。
http://ochameclub.web.fc2.com/petitcom3/lecture/input.htm#2
アバター
ツララ 2018/10/31 10:58 ◆ArUdBYOYME1V
こういちさんの方法って汎用的だからもう少し詳しく解説してあげてもいいのに何で遠慮するかなぁ。
数値を文字列に変換する処理と組み合わせれば、どんな大きな数でも可能だと思いますけど。
10進数だと9桁を一区切りにすれば32bit整数で扱える範囲だから
それ以上の数値は10の10乗で割り算しながら同様の処理を行えば、理論上はメモリの許す限りの桁数が扱えると思うんですけど。
アバター
R_006号 2019/1/27 11:12 ◆2Z/Wom0eRu9/
あの後コメント頂いていたんですね……!
すみません、気づいていませんでした……;;。(−_−;)ナンテシツレイナコトヲ…
皆さんアドバイスありがとうございます!←(今更感強いですけど……)

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -