• ベストアンサー

visualbasic のコード中で 10000000000000#  ってなに!?

visualbasic6.0を使用しています。 コード中に1000000・・・・と書いていくと 0が10個の時点で#が勝手につきます。 これって何なのでしょう? もっともな分かりやすい理由があるのでしょうか? どなたか教えてください。 また0をつけすぎると 1E+25 とかに勝手に変わる理由も教えてください

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

旧DOS-Basic時代から、一部は有りました。 昔の解説書では$ストリング、%整変数、!単精度数、#倍精度数と解説されています。普通の他の言語では変数の型宣言を語句でしますが、Basicはメモリの少なかった(例何十Kとかの時代)TinyBasicの時代から、ソースプログラムを小さく(文字数を少なくする)するため、かつ複雑さを意識させないため(B=Biginner用)、1文字の記号をつけて判別(システムに知らせる)するようにしていたためと思います。 その流れに有るものでしょう。Javaにも「1L」とかの表現はあります。 「また0をつけすぎると 1E+25」も「指数表示」といわれるものです。桁数が許容桁数を越えるとエクセルなどでも(列幅が狭いと)11111111111が1.1111E+10とかに表されます。 http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B410233 指数部と仮数部で表され、指数部は10の何乗かを表します。指数部を表すビット数はシステムで固定決定されています。仮数部は1.何々で表され1.1111X10の10乗(10桁の数)で表されることを表します。コンピュタ内の数表現の2大双璧をになう重要なものです。固定小数点数と浮動小数点数。

その他の回答 (2)

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.2
  • 2ch
  • ベストアンサー率51% (64/125)
回答No.1

i = 1# Debug.Print TypeName(i) i = 1! Debug.Print TypeName(i) i = 1& Debug.Print TypeName(i) i = 1 Debug.Print TypeName(i) 4つめの [i = 1]は本来は[i = 1%]

関連するQ&A