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


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
0302
まゆinputの小数表示について4解決


まゆ

リンク

2018/3/2(Fri) 10:57:56|NO.82592

inputの中に小数0.0565(x=0.0565 input x)を
入れて小数第3位で四捨五入(0.06)したいのですが、
やり方がわかりません。

どなたか教えて頂けないでしょうか。



この記事に返信する


沢渡

リンク

2018/3/2(Fri) 11:55:08|NO.82593

hspmath.asにroundという「小数点以下を四捨五入する」関数がありましたので、
「対象となる数値を100倍してから四捨五入し、そのあと100で割る」という方法でやってみました。

#include "hspmath.as" x=0.0565 s=strf("%.4f",x) input s id=stat button gosub "四捨五入",*rd stop *rd x=round(double(s)*100.0)/100.0 s=strf("%.2f",x) objprm id,s return



あまら

リンク

2018/3/2(Fri) 18:04:26|NO.82594

標準命令のみでの四捨五入も可能です。

沢渡さんのソースに少し変更させていただきました。
文字列型にしているのはdoubleのままだと 0.06ではなく
0.060000 と表示されてしまうからです。
	s = "0.0565";
input s; id = stat; button gosub "四捨五入", *rd; stop; *rd x = double(s) + 0.005; // これで四捨五入になる。 s = strf("%.2f", x); objprm id, s; return;



沢渡

リンク

2018/3/2(Fri) 19:52:04|NO.82598

>四捨五入したい桁に5を足した上で切り捨てれば四捨五入になる
その発想はなかった。
勉強になります。



まゆ

リンク

2018/3/5(Mon) 13:36:42|NO.82631

沢渡さん、あまらさん ありがとうございます。
お二人のおかげで解決できました。



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