有効数字固定の表記

解決


若葉印  2008-01-08 20:14:22  No: 100031

VB6またはVB5で有効数字固定で数値文字列を表示するにはどうすればよいのでしょうか。

例えば有効数字4桁のときは
123456→123400
12.3→12.30
1.2→1.200
0.02→0.02000
としたい。


通ってみた  2008-01-09 04:12:32  No: 100032

有効文字数分の「0」を後ろに付けて、有効文字数分頭から抜き取ればいいのでは?


特攻隊長まるるう  2008-01-09 18:42:17  No: 100033

>有効文字数分の「0」を後ろに付けて、有効文字数分頭から抜き取ればいいのでは?
単純にやってしまうと
123456→1234
12.3→12.3
1.2→1.20
0.02→0.02
になっちゃいましたが。。。(;;

0 以下か 0 以上かで指数の加減を判断して、10 を底とする指数関数で
順に比較していけば桁数が分かるので、桁数に合わせて Format すれば、
できないことはないと思います。

# オイラの脳みそではその程度しか思いつかん。。。
# 数学のサイトでアルゴリズムを質問したほうがいいんじゃない?(^^;


魔界の仮面弁士  2008-01-09 18:50:36  No: 100034

VB 標準の有効数字表現だと、指数表記になりますね。

Debug.Print Format(123456, "0.000E-0")
Debug.Print Format(12.3, "0.000E-0")
Debug.Print Format(1.2, "0.000E-0")
Debug.Print Format(0.02, "0.000E-0")

1.235E5
1.230E1
1.200E0
2.000E-2


通ってみた  2008-01-09 18:54:17  No: 100035

>になっちゃいましたが。。。(;;

あ、本当ですね
よく見返してみると、4桁の定義がわからない・・・

>0.02→0.02000

とか


特攻隊長まるるう  2008-01-09 19:11:15  No: 100036

>VB 標準の有効数字表現だと、指数表記になりますね。
ですよねぇ。ふつーはそっちに行きますよねー。

有効数字というからには、その桁数が分かる方が良いわけで
>123400
これでは結果だけ見ると4桁なのか5桁なのか分からないわけです。
小数点の位置も揃いませんし、
>123456→123400
>12.3→12.30
>1.2→1.200
>0.02→0.02000
という表現自体あまりやらないから、ゴリゴリと自作する必要が
あるんじゃないかなー。


若葉印  2008-01-10 00:07:00  No: 100037

結局これといった方法はないようですね。
という訳で専用モジュールを作りました。

>VB 標準の有効数字表現だと、指数表記になりますね。
>123400
>これでは結果だけ見ると4桁なのか5桁なのか分からないわけです。
>小数点の位置も揃いませんし、
これらは承知の上です。
1.24E+03や2.34E-02よりも1240や0.0234の方が一見して値の大きさを捕らえ易い分かり易いというのが,指数表記を使わない理由です。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加