投稿
reji Satoshi.1103
質問です。「文字型変数」に「数字の変数」を代入したいです。しかし、なかなか出来ません…代入するやり方が分かる方、回答お願い致します。
1そうだね
プレイ済み
返信[1]
親投稿
reji Satoshi.1103
具体的にはここが上手くいきません… ステータスをDATAで表示したいのでSDL$にLV(レベル)やHP(体力)をSDL$に代入して表示したいのですが出来ません…他の方法が分かる方、回答お願い致します…
0そうだね
プレイ済み
返信[2]
親投稿
Mez mituaki584
文字列変数=STR$(数値変数) じゃダメですかねえ…
0そうだね
プレイ済み
返信[3]
親投稿
pz PLASMA0001
文字列変数に数値変数は代入できません。"型(Type)"が違うから。 なので、数値を文字列に変換してから代入します。 A$=STR$(A) みたいな感じですね。
1そうだね
プレイ済み
返信[4]
親投稿
こうあん kou051213
例えば、変数Aを文字列変数B$に変えて、00000003と表示する時は、 A=3 B$=FORMAT$(“%08D”,A) です。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
文字列に変換する数値が6桁以下の整数であることが分かっているならばSTR$を使うのが最も簡単ですが、7桁以上になったり小数になったりするならばSTR$を使うと丸められてしまうため少し値が変わります。 7桁以上の整数値ならばFORMAT$を使うのが簡単ですが、小数も含むならばプチコン3号の有効桁数を考慮する必要があるため難しいです。(0が連なって良いならばFORMAT$で小数点以下324桁以上指定すれば問題ない) そのため私が作ったPSTR$関数を使うのが最も簡単です。
1そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
上記コメントはそれをセーブすることまで視野に入れましたが、文字列にしたものをセーブするのではなく表示が前提ならばFORMAT$を使って型変換するのがベターですね。
0そうだね
プレイ済み
返信[7]
親投稿
reji Satoshi.1103
皆さんコメントありがとうございます。なるほど…専用の命令があったのですか・・・もっと難しいと思っていました…おちゃめさんの自作関数も含め、3種類あるなか、6桁までのものを使おうと思います。本当にありがとうございました。
0そうだね
プレイ済み
返信[8]
親投稿
そういえばSTR$の誤差気にするようなプログラム組んだことないな…
2そうだね
プレイ済み
返信[9]
親投稿
ツララ LongIceSword
数値変数は数値変数のままでLOCATE命令と組み合わせて表示位置を調整するとかじゃダメなんですか? 見た感じ文字列を使うのは罫線のデータだけっぽいですし、罫線を表示している座標上に数値を上書きしなければ罫線も消えないと思うんですけど。
1そうだね
プレイ済み
返信[10]
親投稿
reji Satoshi.1103
コメントありがとうございます。実は、LOCATE命令やPRINTで普通に出来るのですが、DATA文の練習としてこうしたかったためです…
1そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
あまさとしおんさんへ STR$では変に丸められるから困る(FORMAT$でも大きな数字や小さな数字はゼロが羅列されてしまう)という意見を何度も見たため数値を無劣化で文字列に変換するPSTR$を作ったのですが、セーブで使う機会は私も無さそうです(笑) あくまで分かりやすい表示を行うのが本来の目的でしたので。 mkIIも32bit固定小数点を誤差無しで文字列に変換できる32bit整数演算ルーチンを作りましたがこちらも誤差無しがメインの目的ではなく524287という上限値以上の数値を簡単に扱えるようにするためのものでした。
2そうだね
プレイ済み