- 締切済み
プログラミングvbについて質問
vb2012です。たとえば dim D as double D=1/3 label1.text=D としたときに、label1のテキストが0.333333333333333らへんで止まってしまうのですが、これはどうすればいいでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ariseru
- ベストアンサー率56% (928/1657)
>これはどうすればいいでしょうか。 その表示をどうしたいのか分からなければアドバイスのしようが無いのですが…… もっと小数点以下の桁数を増やしたいのですか? それとも、もっと少ない桁数までしか表示しないように制限したいのですか? もっと桁数を増やしたい場合は、変数のデータ型をDoubleじゃなくてDecimalにしてください。 Double型だと有効桁数が15~16程度なのですが、Decimal型だと28~29桁まで扱うことが出来ます。 また、Single型とかDouble型だと計算結果の精度があまりよくなくて誤差が出たりするのですが、Decimal型だと精度が高くて誤差が少ないというメリットもありますね。 ただし、計算処理をする場合のパフォーマンスが悪いというデメリットがありますので、プログラムの中で多用することはおすすめ出来ません。 桁数を少なくしたい場合や、一定の長さまでに制限したい場合は、Format関数などで書式を指定するというのが簡単ですね。 Dim D As Double D = 1/3 Label1.Text = Format(D ,"0.0000") 例えば、上記のようにすれば小数点以下4桁までの表示にすることが可能です。
- web2525
- ベストアンサー率42% (1219/2850)
Excelの計算は数値15桁+指数で表されます 0.33333333333333 はエクセルの計算式上限です 16桁以上の計算をするには http://www.nokotech.net/merumaga-img/office/excel-yukouketa.html
- play_with_you
- ベストアンサー率37% (112/301)
>どうすればいいでしょうか。 逆に、「どうしたいのですか」? >0.333333333333333らへん 無限に続けることはできないので「当然」どこかで切らないわけにはいきませんが。
補足
>逆に、「どうしたいのですか」? はい、30桁くらいまで伸ばしたいのですが、 1/3だけでなく、たとえば√2(プログラム上では2^1/2)なども同じように計算したいと思っています。 情報が少なくてすみません。