通報するこの回答へのお礼みなさん本当にありがとうございました。いろいろな方法で試してみましたがDecimalも不具合が出ないっぽいので採用かなと考えています。14:45原因はもう述べられてますね。1000倍した値をLong型に収めてから計算。12:50実数演算の宿命です。ちなみに「電卓は、10進扱いで、このような誤差はない」とのたまう人が居ました。...この回答への補足ご回答ありがとうございました。通報するこの回答へのお礼みなさん本当にありがとうございました。いろいろな方法で試してみましたがDecimalも不具合が出ないっぽいので採用かなと考えています。(2進数×2の自然数乗)という方式を採っているからです。(10進数×10の自然数乗)という見かたをするので、表示するときは16進数や2進数を10進数に変換しなければなりません。整数を変換するときは、問題ありません。少数はほとんどの場合、10進数を16進数に変換したり、16進数を10進数に変換すると、どちらも無限小数となってしまいます。10進数で0.1という簡単な少数は、16進数では無限小数です。無限小数を利用すれば、変換は互いに可逆です。コンピュータには無限の記憶領域はないので、細かい部分は切り捨て(または繰り上げ)なければなりません。それが今回の誤差です。double型はおよそ10進数で15桁程度しか有効数字がありません。0.701500000000000となります。15桁目以降は不明です。0.00150000000000006となってしまったのでしょう。0.7015と0.7の最初の桁から15桁目まででは6という数字は現れませんでしたが、0.0015の最初の桁から15桁目まででは6が存在してしまうのです。ある程度の科学計算では15桁もあれば十分です。微妙な部分は切り捨てたり四捨五入します。金額計算にdoubleを使ってはいけません。利子などは数値をなん度もかけ算するので、誤差が無視できないところまでふくれあがります。15桁などあっというまです。VBでは金額計算に便利なCurrency型が用意されているので、金額計算をしているようならCurrencyを使います。少数5桁以下は切り捨てられます。その代わり、精度は19桁ほどあります。この回答への補足ご回答ありがとうございます。私の周りの人に「CDecすりゃいいよ」って冷たく言われるんですけど、、。R(9ExcelのVBA。SUM関数について質問です。R(9ExcelのVBA。SUM関数について質問です。相対パス関連するQ&A1DOUBLE型の16進HEX文字列変換について2クエリの結果とレコードセットの結果が違う3ExcelVBA複数条件一致後別シートに結果表示4集計して別シートに集計結果を出す5VBAでコマンドプロンプトの結果を変数に代入6Access2010サブデータフォームの項目に処理結果を順次代入したい7計算結果が毎回違う。回答数ランキングです。・本当は知りたい、発毛体験のあれこれ。...9ExcelのVBA。...9ExcelのVBA。相対パス新規登録・ログインgooIDで新規登録・ログインログイン新規登録(無料)このカテゴリの人気Q&AランキングデイリーマンスリーNotepad起動のイベントでEXC...Excelの最終列までの転記についてExcelマクロで複数回検索する方法4Outlook2007の階層5テキストファイルの列を抜き出...6VBAでの処理7マクロについて。恋愛からビジネスまで人気の記事が一目で分かる今読むべき記事はコレ!貴社サイトにQ&Aを!QAコネクトとは・・?QA機能を導入できます利用料0円。Inc.質問して、直接聞いてみよう!Q質問する(無料)Q&A検索goo検索gooIDで新規登録・ログイン新規登録する(無料)会員の方はこちら外部サービスのアカウントで新規登録・ログインYahoo!で新規登録・ログインGoogleで新規登録・ログインTwitterで新規登録・ログインFacebookで新規登録・ログイン※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。会員でない方、会員になるとあなたも質問や回答ができるようになります!!親切・丁寧な回答が集まる場30分以内に回答がもらえ回答数は平均3件!匿名(ニックネーム)での投稿なので。