HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0623
ついついlongintを使った変数から文字列を取り出す方法3解決


ついつい

リンク

2015/6/23(Tue) 19:32:20|NO.69841

32ビットの整数以上の値を扱えるlongintのプラグインを初めて知って試していたのですが、
longintを使った変数からstrfで文字列として取り出そうとすると、やはりというか、
32ビットの上限で止まってしまいます。

longintstr = strf( "%012d" , longint )

strfの代わりに文字列として取り出す方法は無いでしょうか。



この記事に返信する


y.tack

リンク

2015/6/23(Tue) 20:39:49|NO.69844

str命令で文字列に変換して strmid命令で左か右から取り出すとか どーですか?


#include "longint.hsp" dimtype lint,vartype("longint"),1 lint=longint("1234567890")*longint("10000000000")+longint("9876543210") s_l=str(lint) mes s_l mes strmid(s_l,0,10) mes strmid(s_l,-1,10)



ついつい

リンク

2015/6/23(Tue) 22:49:53|NO.69847

>y.tackさん
アドバイスありがとうございました。
次のような形で実行できました。

#include "longint.hsp"

longint lisc
lisc = lisc + 123456*15
frame++

if frame = 1 : lisc = 0 : liscstr = strf("%012f",lisc)

liscstr = strf("%012d",lisc)
pos 0,100:es_mes "12桁の文字列" + liscstr

keta(0) = strmid(liscstr, 1,1)

先に1フレーム目で12桁(任意)を0で埋めておき、
スコアなどで使う場合に取り出す際には左からn桁目で指定できます。



fufu

リンク

2015/6/24(Wed) 05:43:23|NO.69850

ゲームのスコア程度なら小数を使う手もあります。
約9000兆まで誤差なしで整数計算できます。

sc=1000000000000.0*9000+123456789 mes strf("%018.0f",sc)



ONION software Copyright 1997-2023(c) All rights reserved.