No.3ベストアンサー
- 回答日時:
回答2の方がおっしゃるとおり、計算に使用する値や変数の型によります。
例えば、
Dim varVal1 as Variant
varVal1 = 1! / 3! '結果はSigle型精度
varVal1 = varVal1 / 3# '結果はDouble型精度
varVal1 = varVal1 + 2@ '結果はCurrency型精度
varVal1 = varVal1 / 3# '結果はDouble型精度
となります。
誤差とかも結果の型と同じように発生します。
No.2
- 回答日時:
再度質問しているようだが、
http://hp.vector.co.jp/authors/VA021605/vb/Dimen …
のVariant型の解説を読めばわあるように
>(1)精度について
論じる視点軸とと、データ型が当初決めないという性格と、視点軸があってないのを質問していると思いませんか。
(2)メモリを沢山消費する、(3)ミクロ的にスピードが落ちる
とかの視点軸で論じられるが、精度では論じられない(意味が無い)。
代入の右辺に来た変数の型に従います、ということではないですか。
右辺にはVBで認められる型=精度も決まっている、しか来ないのではないですか。
それにVatiant型は勧められていないようだから、余り詮索する必要も無いと思う。
http://iijima.auemath.aichi-edu.ac.jp/pw/program …
>variant型から, 型の明示へ
ーー
まあ他の方の良い回答があればよいが。
やや難しい質問の場合、プロ級の方に見てもらわないとダメなので、土日休日に質問を出すのは得策じゃないように経験から思う。
No.1
- 回答日時:
多分、Variant型にしたからといって、単純な計算なら演算精度が落ちる事はないと思います…型宣言付きの変数で演算した場合と比べて
Variant型は保持しているデータの型を取得できるので、型宣言付きの時と同じく適切に型変換されてから演算時が実行される事を期待できます
注意しないといけないのは、暗黙の変換が行われる場合ではないでしょうか?
a="0.1"
a=a*2
の結果は、Double型で0.2になります(多分)
精度(誤差)を気にしてCurrency型で演算する/結果が欲しいなら
a=ccur(a)*2
みたいにしないとだめですよね?(Currency*Integerとして計算させる)
…ここでは、aに"0.1"という文字列が入っているので、ccur()で誤差はでないはず
a=ccur(a*2)にしても結果はCurrency型になりますが、チョット意味が違うってのはわかりますよね
ぁ、割り算のほうが例としては良かったかも
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- ラジオ このミニFM送信機って簡単に買えるのでしょうか?? 我が家では、FM放送が難視聴地域のため、スマホを 2 2023/05/03 17:25
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Excel(エクセル) excelvbaのwithについて 4 2022/12/19 16:51
- その他(病気・怪我・症状) 新型コロナウィルスオミクロン株から派生した XBB1.5(クラーケン)の亜種のXBB.1.9.1 が 3 2023/03/13 20:16
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- C言語・C++・C# (C言語)めちゃくちゃな値になってしまいます。 5 2022/08/13 11:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
16進数 加算 減算 C言語
-
C言語プログラミングにて、arct...
-
VB6.0での小数点の扱いについて
-
O(n log n)について2
-
VB6のFIX関数での誤差について
-
ExcelでPC(パソコン)によって...
-
C言語でセルオートマトンを作成...
-
時刻の比較
-
パソコンで階乗を計算
-
”/”を使わずに割り算したいんで...
-
floatの有効桁数
-
c languageで 簡単な質問があ...
-
2進数の0.2?
-
浮動小数点演算を固定小数点演...
-
VBAのINT関数について
-
ラズベリーパイ>MM-TXS03で温度...
-
EXCELの関数"STDEV(標準偏差)"...
-
Double型について
-
浮動小数演算は実行環境の変化...
-
VBAでの割り算の余りの求め方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
O(n log n)について2
-
ExcelでPC(パソコン)によって...
-
ExcelのINT関数の計算結果がお...
-
16進数 加算 減算 C言語
-
VB.net Double と...
-
floatの有効桁数
-
三菱シーケンサ(Aシリーズ)で...
-
c languageで 簡単な質問があ...
-
除算を使わずに10で割りたい。
-
VBAでミリ秒まで出力する方法
-
VBAでの割り算の余りの求め方
-
VB6.0での小数点の扱いについて
-
VB6のFIX関数での誤差について
-
有効数字について 以前質問をし...
-
100桁の計算ができなくて困って...
-
浮動小数演算は実行環境の変化...
-
EXCELの関数"STDEV(標準偏差)"...
-
BCD・HEX・BINについて
-
コンピューターは指数関数をど...
-
乱数 なぜ剰余を使うのか
おすすめ情報