変数についての質問
- -0.0685274635 に対する変数の適切な型は何ですか?
- CAL_DA が -6.85274.. になってしまいますが、必要なのは -0.068 の桁です。
- CAL_DA = Mid(Range("a1"),1,6) を使用しても良いですか?
- ベストアンサー
変数について
質問1:-0.0685274635この数値を扱うのは(計算したりIFで判断するには)どの変数を使えば良いですか? '変数 Variant Double=倍精度浮動 Currency=通貨型 Integer=整数型 Float=浮動小数点型 Long=長整数型 Dim CAL_DA As Integer Range("A1")="-0.0685274635" CAL_DA =Range("a1") 質問2:CAL_DAが-6.85274..になってしまいます。 ただし、必要とするのは-0.068の桁でよいのですが 質問3:CAL_DA =Mid(Range("a1"),1,6)いけますか? 以上ですよろしくお願いします。
- saab8743
- お礼率74% (129/173)
- オフィス系ソフト
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 質問1 通常、Excelで、数値を扱う場合は、Double 型で、それ以上の精度を求める場合は、Currency 型に切り替えしますが、通常は、そんなに使いません。If で、タイプを判定するなら、VarType を使い、変数Variant 型にしておくこともありますが、なるべく最初から、決めてください。 旧VB系は、 整数型は、 Integer, Long 精度を上げるなら、 Currency 浮動小数点型は Single, Double Float 型は、C言語の変数型だと思います。 質問2 >必要とするのは-0.068の桁でよいのですが Sub Test01() Dim Cal_Da As Double '←変数の型名は、なるべくキャメル型にしてください。 Range("A1").Value = -0.0685274635 '←プロパティを入れ、数値で入れるのが基本です。 Cal_Da = Range("A1").Value Cal_Da = Fix(Cal_Da * 10 ^ 3) / 10 ^ 3 End Sub 質問3 >CAL_DA =Mid(Range("a1"),1,6)いけますか? VBAを扱う人はよく使うようですが、私はあまり好きな方法ではありません。 Sub Test01()の Fix は、小数点固定になりますが、Int は、丸めが発生しますので、 もし、Int を使うのなら、以下のように、 Cal_Da = Sgn(Cal_Da) * Int(Abs(Cal_Da) * 10 ^ 3) / 10 ^ 3 となります。
関連するQ&A
- VBAの変数変換のことです
VBAの変数変換のことです 整数変数=実数変数や実数変数=整数変数でCIntやCSng関数を使わないでOKでしょうか? Dim VAR(20) As Single '単精度浮動小数点数型 (Single) Dim IVARO(20) As Integer '整数型 (Integer) Dim IVAROC(20) As Integer '整数型 (Integer) IVARO(NCD) = VAR(NCD) 'Single to Integer IVAROC(NCD) = CInt(VAR(NCD)) 'Single to Integer これで、IVARO(NCD)とIVAROC(NCD)には同じ値が入っているのですが、 整数=実数でCInt関数を使わないで整数にする構文はOKでしょうか?
- ベストアンサー
- Visual Basic
- phpで小数点型をfloatとdouble型といい
phpで小数点型をfloatとdouble型といいますが なぜ小数点型をfloatと呼ぶんでしょうか? 整数は英語でintegerですが、小数はdicimalですよね
- ベストアンサー
- PHP
- CPUベンチマークの見方
Bencherというソフトを使用してますが Integer(整数演算) Float(浮動演算) Pen-4 Integer-283 Float-354 Ath-XP Integer-768 Float-686 この場合数値が小さいのと大きいのでは、どっちが処理能力が上ですか? 宜しくお願いします。
- ベストアンサー
- その他(インターネット・Webサービス)
- c言語の変数の型について
浮動小数点数の変数の型ってfloat、double、long doubleがありますよね?(その他もあったら教えてください) doubleはfloatの倍精度らしいですが、倍精度ってのは扱える数字の範囲が2倍なのか有効桁が2倍なのかわからないんで教えてほしいです。ちなみに、doubleとlong doubleの違いも判りません。 あと、これらの変数はprintfで出力するときは最高で8桁までしか出力できないんでしょうか?20桁とかは無理なんですかね?
- ベストアンサー
- C・C++・C#
- 浮動小数点 を整数に変えて計算する方法
floating point (浮動小数点)を integer (整数)(fixed point(固定小数点)?)にかえて計算する方法を教えてください。 よろしくお願いします。
- ベストアンサー
- 数学・算数
- 浮動小数演算は実行環境の変化に応じて異なる結果に?
プログラム(C++)について質問があります. 浮動小数演算を用いると,実行環境の変化に応じて結果が変わってしまうのでしょうか? プログラム中ではdouble演算を頻繁に用いています. (ソースコードは膨大すぎるため,申し訳ありませんが載せることが出来ません.) 小数演算をするために何気なくdouble(もしくはfloat)を使っていました. しかし,コンパイル後の実行ファイルを実行する環境に応じて結果が変わってしまうのでは・・・と思い始めました. そこで,ご質問なのですが, ・浮動小数を扱うと,実行環境(プロセッサ?)に応じて,結果は変わってしまいますか? また,もし誤差が生じてしまうならば,何か対処する方法はありますでしょうか? (整数演算にしろ!・・・と言うのは無しにさせて頂きます.) 初歩的な質問だと思いますが,宜しくお願い致します.
- ベストアンサー
- C・C++・C#
- CPUのベンチマークテストの結果について教えて下さい。
パソコンを3台所有しています。CPUのベンチマークテスト(HDBENCHを使用)をしてみたところ、そのうちの1台が浮動小数点演算のテスト結果が格段に低かったのです。これはCPUの不良なのでしょうか。下記に結果を記入します。 Core2 Duo E6600 → Integer(341515) Float(226065) Core2 Duo E6850 → Integer(430838) Float(284035) Core2 Duo E8500 → Integer(448143) Float(22693) ←これです このような状態は普通なのでしょうか。 わかる方いらっしゃいましたら、ご指南お願い致します。
- ベストアンサー
- その他([技術者向] コンピューター)
お礼
早速、プログラムを訂正して使わせてもらいます。 10`3は小数点第3位のことですね ありがとうございました。