• ベストアンサー

Double型への値の設定で「#」を付ける意味は何ですか?

VB2005で開発しています。 分からないので、自分なりにサンプルプログラムを作ってみましたが、 結果が変わりません。 以下のような感じで、試しました。 ------------------------------------------ Dim dbl As Double dbl = 120.1# MessageBox.Show(dbl.ToString) dbl = 120.1 MessageBox.Show(dbl.ToString) ------------------------------------------ 「#」を使うことに、どのような意味があるのでしょうか? うまく調べられませんでしたので、教えて頂けませんか? お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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 になります。

rock123
質問者

お礼

詳しく説明頂き、ありがとうございます。 とても分かりやすかったです。 勉強になりました。

その他の回答 (1)

  • NYOI
  • ベストアンサー率58% (56/96)
回答No.1

http://www.atmarkit.co.jp/fdotnet/dotnettips/155numtype/numtype.html 上記ページの中程にありますが、要は型を明示的に示しているだけです。 120.1# はDouble型の120.1ですよ、と明示しているだけです。

rock123
質問者

お礼

ありがとうございます。 データ型の明示が必要なケースがあるのですね。 勉強になりました。

関連するQ&A