おもしろい(?)というか、困った現象が起きました。
フォーマット関数での出来事です。
Format("12C33","000000") = 12C33
Format("12P33","000000") = 12P33
と、そのまま値が返ってくるのですが、
なぜか、アルファベット部分が『D』の場合のみ
Format("12D33","000000")
12000000000000000000000000000000000
が返ってくるのです!
これは何故なんでしょう!?
周知の事実なんでしょうか?
どなたかご存知のかた教えてください。
このせいで、エラーが起きてしまう箇所を
発見しました。
VisualBasic プロフェッショナルの
皆様の回答お待ちしています。
単に無知なだけ??・・・(汗)
No.1
- 回答日時:
> Format("12D33","000000")
> 12000000000000000000000000000000000
>
> が返ってくるのです!
12D33 → 12 × 10の33乗
と解釈されるようです。(D = Decimal の略?)
ですので、バグではなく仕様だと思います。
IsNumeric("12D33") も True と評価されます。
そうなのです。
IsNumericもTrueなんです。
こんな仕様アリなんでしょうか・・・。
ちなみにEでも同じようなことが起きるみたいです。
これも仕様なのでしょうか?
さらに
IsNumeric("D3")はfalseなんですよ・・・。
回答の論理でいうとTrueのはずなんですが。
Dが数字の間に挟まれる時のみに起きるんです。
こんな仕様ありなんでしょうか?
No.2
- 回答日時:
こんにちは。
maruru01です。ちなみに、「12E33」も同じです。
つまり、12×10の33乗。
なお、「12D-33」や「12E-33」は、
「000000」
です。
これは、12×10の-33乗と判断され、表示形式が整数6桁なので、小数部分が消えてしまうから。
No.3
- 回答日時:
こんにちは。
maruru01です。ちなみに、「12E33」も同じです。
つまり、12×10の33乗。
なお、「12D-33」や「12E-33」は、
「000000」
です。
これは、12×10の-33乗と判断され、表示形式が整数6桁なので、小数部分が消えてしまうから。
No.4ベストアンサー
- 回答日時:
数値計算の歴史?から来た仕様といって良いのではないでしょうか。
計算機で大変大きな数値または大変小さな数値を取り扱う時に誤差を少なくするために、指数を使った浮動小数点で数値を表します。
それが、「12E33」のような表し方で定義されてきました。「E」はexponent(指数)のEです。
「12E33」×「1E-33」は、「12E0」となって答が出るのですが、これを固定小数点演算で計算すると、すごい桁数の演算器を用意しないと、答が「0」になってしまいます。
また、「D」は更に精度よく計算をするための倍精度の数値を表すために使われてきました。
「D」は、double precision(倍精度)のDです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) C3とC4のセルに、Visual basicで実行した時入力した値をC3に表示させ、その後に、C3に 1 2023/07/14 09:43
- 神経の病気 手掌多汗症の手術の代償性発汗について 2 2022/09/28 08:14
- au(KDDI) 特定の画面を見るとスマホが固まります ご覧頂き有難うございます。 特定のページを見るとスマホが固まり 1 2023/08/21 19:29
- FX・外国為替取引 MQL5にて謎のエラーが発生!だれか対処を教えてください! 1 2023/03/25 15:59
- リフォーム・リノベーション マンションリフォーム工事の際に提出する「申請書・誓約書」について 3 2022/08/04 09:45
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
16進数 加算 減算 C言語
-
O(n log n)について2
-
三菱シーケンサ(Aシリーズ)で...
-
EXCELの関数"STDEV(標準偏差)"...
-
浮動小数点数を10進表記するア...
-
ExcelでPC(パソコン)によって...
-
Excel VBAでの数値の計算につい...
-
floatの有効桁数
-
C言語プログラミングにて、arct...
-
三角比の俯角の計算
-
VBAでミリ秒まで出力する方法
-
VB6.0での小数点の扱いについて
-
パソコンで階乗を計算
-
c languageで 簡単な質問があ...
-
ftoa関数の作成
-
時刻の比較
-
VBAでの割り算の余りの求め方
-
ExcelのINT関数の計算結果がお...
-
0.1の10000回の累積
-
4096bitを95種類で表現すると何...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
O(n log n)について2
-
三角比の俯角の計算
-
c languageで 簡単な質問があ...
-
16進数 加算 減算 C言語
-
ExcelでPC(パソコン)によって...
-
VB.net Double と...
-
”/”を使わずに割り算したいんで...
-
ExcelのINT関数の計算結果がお...
-
有効数字について 以前質問をし...
-
floatの有効桁数
-
三菱シーケンサ(Aシリーズ)で...
-
距離から緯度経度を求める方法
-
VBAでミリ秒まで出力する方法
-
EXCELの関数"STDEV(標準偏差)"...
-
除算を使わずに10で割りたい。
-
C言語プログラミングにて、arct...
-
VB6.0での小数点の扱いについて
-
VBAでの割り算の余りの求め方
-
255の2の補数、B'00000001'が-...
-
変換指定子%22-16gの表示...
おすすめ情報