コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
Na ◆QoELVrBXBQCI
2019/12/3 21:53
ユーザー定義命令の引数に整数渡したら整数型になる仕様でハマりかけた。
FUNC 1
みたいな呼び出しだったら1.0にすればいいが、
FUNC VAL(A$)
がまさか整数型になるとは

コメント

アバター
SatoshiMcCloud 2019/12/4 20:25 ◆Z1qfV11i63Jr
ホントに型関連の仕様が厄介ですよね
勝手に変換されたり、かと思えば自動で変換してくれなかったり…
アバター
ツララ 2019/12/6 17:32 ◆ArUdBYOYME1V
もしかしたらA$に数値文字列として格納する時に整数化しちゃう整形や演算子を使うとかして
小数点以下を消しちゃってるのが原因なんじゃないんです?

関数に渡すときに小数点以下を付け加えれば解決するのが分かってるなら
FANC VAL(A$+".0")
としてやれば良いんじゃないんです?

変換される条件についてはおちゃめさんが詳しいですし
条件させ分かっていれば、そのポイントを押さえたプロググラムにすれば良いだけの様な気がするんですけど。
放置してるから厄介に感じるだけで。
アバター
Na 2019/12/6 18:10 ◆QoELVrBXBQCI
VAL(A$)+0.0
もありですね。

DEF FUNC(A)
VAR B=A
(以下Aの代わりにBを使う)

というふうに別の変数に入れなおせばどんな値が渡されても(文字列が渡された場合以外)対応できます。

3号は変数名に#をつけたら実数、%をつけたら整数、$をつけたら文字列っていう厳密なルールがあるのにDEFの引数にだけそれが適用されないっていうのがどうも厄介なんですよね。

その前にVAL("1")が整数型になるって初めて知りました

コメントを書く

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

- WEB PATIO -