アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB2005で開発しています。

分からないので、自分なりにサンプルプログラムを作ってみましたが、
結果が変わりません。
以下のような感じで、試しました。

------------------------------------------
Dim dbl As Double

dbl = 120.1#
MessageBox.Show(dbl.ToString)

dbl = 120.1
MessageBox.Show(dbl.ToString)
------------------------------------------

「#」を使うことに、どのような意味があるのでしょうか?
うまく調べられませんでしたので、教えて頂けませんか?

お願いいたします。

A 回答 (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 になります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/10 13:52

http://www.atmarkit.co.jp/fdotnet/dotnettips/155 …
上記ページの中程にありますが、要は型を明示的に示しているだけです。
120.1#
はDouble型の120.1ですよ、と明示しているだけです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/10 13:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!