
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんばんは!
横からお邪魔します。
他の方が回答されているように、浮動小数点誤差の影響だと思われます。
お示しの関数に限らず、時間計算等でも小数点以下の計算ではこのような状態になるコトがあります。
一番簡単なのは
ROUND関数を使って計算結果を小数点以下5~6桁で丸める方法だと思います。
例えば
=ROUND(78*1000*0.1005/2-TRUNC(78*1000*0.1005/2),6)
といった感じではどうでしょうか?m(_ _)m
No.3
- 回答日時:
こんばんは。
浮動小数点丸め誤差と呼ばれている現象です。
整数法といって、整数にして計算させる方法。
小数点固定法といって、一旦文字列にさせてしまう方法。
それに四捨五入丸めを使う方法で、
Microsoft 側では、四捨五入を使う方法を推奨しているようです。
=ROUND(78*1000*0.1005/2,3)-TRUNC(78*1000*0.1005/2,0)
小数点固定として、こんな方法もあります。
=FIXED(78*1000*0.1005/2,3)-TRUNC(78*1000*0.1005/2,0)
後は、すでに既出ですが、10倍にして10で割るという整数法です。
Excel で浮動小数点演算の結果が正しくない場合がある
https://support.microsoft.com/ja-jp/help/78113/f …
No.2
- 回答日時:
2進数の小数点以下の計算における微小誤差の話ですね。
有効桁を決めて計算をさせるようにしましょう。
それで解決しますよ。
それが面倒と思うのであれば、TRUNC関数の結果を10倍にしてみましょう。
それに伴い、引き算される元の数値も10倍する必要があります。
そして引き算された数値を10で割れば、キリの良い0.5になります。
=(78*1000*0.1005/2*10-TRUNC(78*1000*0.1005/2)*10)/10
ちなみに、この10倍の根拠は「0.5」という数値を整数化することを目的としています。
「0.25」を整数化したいなら100倍ってこと。
・・・
まあ、こっちのほうが面倒なんですけどね。
No.1
- 回答日時:
こんばんは。
何らかの誤差(例えば、10進2進変換、扱える桁数とか)が出たのではないですか?
一例ですけど、0.5という小数点1位が重要なので、10倍して、切り捨てて、10で割る
にすると、回避はしてくれますね。
以下の関数は78*1000*0.1005/2の方だけで試して、0.5になりました。
添付図が見にくいかも?。
やりたいことは(数値x10)を切り捨てた後、10で割ることです。
trunc側も10倍して、trunc関数に通して、10で割るやり方も
=(ROUNDDOWN(10*78*1000*0.1005/2,7)/10-TRUNC(78*1000*0.1005/2))
別にこれにこだわらなくても、他の関数でも可能です。
ご参考まで。

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) ExcelのグラフをPowerPointに貼り付けした際にデータテーブルの小数点以下を削除したいです 2 2023/02/28 19:46
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Excel(エクセル) ある文字を含む際に、値を返す数式についてです 5 2022/08/28 16:58
- 工学 制御工学の問題です。 3 2023/01/23 22:32
- Excel(エクセル) Excel上で分からないことがあります。 他のシートからコピー→貼り付けしたのですが図のようになって 4 2023/05/29 19:16
- Excel(エクセル) 複数シートのデータ統合とレイアウトの維持についてです 2 2022/10/18 21:11
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.net Double と...
-
三菱シーケンサ(Aシリーズ)で...
-
c languageで 簡単な質問があ...
-
”/”を使わずに割り算したいんで...
-
計算機誤差
-
ExcelのINT関数の計算結果がお...
-
教えて小数点の比較!(C言語)
-
計算の丸め誤差の解消について
-
巨大な階乗の桁数を求めるプロ...
-
10次の多項式を求めるプログラ...
-
floatの有効桁数
-
三角関数、逆三角関数の算出方...
-
ExcelでPC(パソコン)によって...
-
Excel VBAでの数値の計算につい...
-
EXCELの関数"STDEV(標準偏差)"...
-
数値の誤差
-
float型の精度(有効桁と実数)...
-
CRCの計算方法について
-
O(n log n)について2
-
エクセルの多い桁数を表示させ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
O(n log n)について2
-
有効数字について 以前質問をし...
-
三菱シーケンサ(Aシリーズ)で...
-
ExcelでPC(パソコン)によって...
-
c languageで 簡単な質問があ...
-
ExcelのINT関数の計算結果がお...
-
VB.net Double と...
-
VBAでミリ秒まで出力する方法
-
16進数 加算 減算 C言語
-
EXCELの関数"STDEV(標準偏差)"...
-
floatの有効桁数
-
除算を使わずに10で割りたい。
-
計算の丸め誤差の解消について
-
VB6.0での小数点の扱いについて
-
コンピューターは指数関数をど...
-
2038年問題 日付算出
-
時刻の比較
-
2進数、16進数、10進数のことを...
-
浮動小数演算は実行環境の変化...
-
2進数の足し算(C言語)
おすすめ情報