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


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
1030
ジュン実数が入った配列変数の桁数を一括で変えたい2解決


ジュン

リンク

2018/10/30(Tue) 00:15:17|NO.85752

a(b)とい実数の入った配列変数の中身を、すべて小数点以下3桁までの表示で、余分な0を無くして表示したいのですが、どのようにしたらいいでしょうか

いろいろぐぐってみて、
repeat b
a(cnt)=strf("%.3f",a(cnt))
a(cnt)=strf("%g",a(cnt))
loop
みたいなことをしてみたのですが、中身がa(0)以外全て0になってしまいました
(上記は配列変数じゃない場合は上手く行きました)
どのようにしたら上手く行くか教えて下さい、お願いします



この記事に返信する


Velgail

リンク

2018/10/30(Tue) 00:35:55|NO.85753

例示としては以下のような形。
>a(cnt)=double(strf("%.3f",a(cnt)))
が重要で、ここでちゃんとキャスト(double型に変換)することで、aの配列が文字列配列にリセットされなくなります。
または別の配列変数を用意し(この場合は変数c)、そちらに代入していくのも一つの手となります。

HSPでは型がすぐに変わってしまうので、ぜひデバッグウィンドウの変数の型を注意深く見てくださいね。


b=10 ddim a,b repeat b a(cnt)=0.0001*rnd(10000)+rnd(10000)+0.0001*0.0001*rnd(10000) loop sdim c,64,b repeat b mes a(cnt),1 mes " ",1 a(cnt)=double(strf("%.3f",a(cnt))) c(cnt)=strf("%10.10g",a(cnt)) mes strf("%f,%s",a(cnt),c(cnt)) pos 0 loop



ジュン

リンク

2018/10/30(Tue) 18:55:33|NO.85754

ありがとうございます、無事解決しました!



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