- ベストアンサー
Double型への値の設定で「#」を付ける意味は何ですか?
VB2005で開発しています。 分からないので、自分なりにサンプルプログラムを作ってみましたが、 結果が変わりません。 以下のような感じで、試しました。 ------------------------------------------ Dim dbl As Double dbl = 120.1# MessageBox.Show(dbl.ToString) dbl = 120.1 MessageBox.Show(dbl.ToString) ------------------------------------------ 「#」を使うことに、どのような意味があるのでしょうか? うまく調べられませんでしたので、教えて頂けませんか? お願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Dim dbl As Double dbl = 120.1# 【1】 dbl = 120.1# 【2】 dbl = 120 【3】 dbl = 120# 【4】 上の【1】と【2】は同じ結果 上の【3】と【4】は同じ結果 しかし Dim dbl As Double dbl = 1234567890 +1234567890 【A】 dbl = 1234567890#+1234567890# 【B】 dbl = 1234567890.1 +1234567890.1 【C】 dbl = 1234567890.1#+1234567890.1# 【D】 上の【A】と【B】は同じ答えにならない 上の【C】と【D】は同じ結果 本来なら、【A】と【B】も#がついているかいないかでですから 同じ結果にならないといけないが、実際はならない。 【A】の演算は integer として計算されますので桁数オーバーで エラーになります。 故に、数字事態も、内部では、#がついていると 強制的にdouble になり、ついていないと integer もしくは long になる ときもあります。 数字 1 は内部では 4バイトで、 1#は内部では8バイトメモリを 占有します。 ただし、小数点の場合は、無条件で double になります。
その他の回答 (1)
- NYOI
- ベストアンサー率58% (56/96)
http://www.atmarkit.co.jp/fdotnet/dotnettips/155numtype/numtype.html 上記ページの中程にありますが、要は型を明示的に示しているだけです。 120.1# はDouble型の120.1ですよ、と明示しているだけです。
お礼
ありがとうございます。 データ型の明示が必要なケースがあるのですね。 勉強になりました。
お礼
詳しく説明頂き、ありがとうございます。 とても分かりやすかったです。 勉強になりました。