No.1
- 回答日時:
=rounddown(25.4,1)-rounddown(25.3,1)
で如何でしょう。
ただ、実際のところ、これでも完全ではありません。
何故か?
>演算結果は0.09999・・
のように、表示形式で小数点以下の桁数を、「15」桁以上にすると
0.099999999999998
となります。
これは、「浮動小数点」が影響しています。
詳しくは、「浮動小数点とは」で検索してください。
No.2
- 回答日時:
=ROUNDDOWN((254-253)/10,1)
小数点演算を回避するしかないですね。
>celsius = 5 * (fahr - 32) / 9;
>ここで、単に 5/9 を掛ける代わりに、5 をかけてから 9 で割っている理由は、・・・
「プログラミング言語C」13頁)
内容は異なりますが、手法の意味するところは同じかと思います。
No.3ベストアンサー
- 回答日時:
=Rounds(引算(25.4,25.3),1,1)
| |
| +--- 小数点1桁で丸める
+---- 0=四捨五入, 1=切り捨て, 2=切り上げ
どうしても、整数演算での回避が気に喰わなければ、
引算()
という自作関数を用意するしかないです。
つまり、小数点のまま計算しても誤差が生じない関数を利用する環境を作ることです。
僅か1行の関数ですが小数点演算の不具合が Currency 型の演算で回避することを示しています。
なお、テストでは、Excel の ROUND, ROUNDUP,ROUNDDOWN を統合した Rounds関数も使っています。
この場合、引数は Currency型で受け取っていますよね。
この点では、Excel の各関数も同じだと思います。
これで、なぜ、小数点演算誤差が発生したかを理解できるとおもいます。
Option Explicit
Public Const 四捨五入 = 0
Public Const 切り捨て = 1
Public Const 切り上げ = 2
Public Function Rounds(ByVal M As Currency, ByVal A As Integer, Optional D As Integer = 0) As Variant
Rounds = Sgn(M) * Fix(Abs(M) * 10 ^ D + Abs((A = 0) * 0.5@ + (A = 2) * (Int(M * 10 ^ D) <> (M * 10 ^ D)))) / 10 ^ D
End Function
Public Function 引算(ByVal A As Currency, ByVal B As Currency) As Variant
引算 = A - B
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのSUM関数について 4 2023/04/18 10:37
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- 会計ソフト・業務用ソフト エクセルについて 1 2022/06/15 17:39
- システム CPUの問題について 2 2022/07/09 12:04
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Chrome(クローム) Chromeの描画領域を2分割して異なるスクロール位置を同時に表示させることはできますか 1 2023/03/01 16:53
- 数学 代数学でわからないところがあるので教えていただきたいです。 S={x,y,z}を濃度3の集合とする。 3 2022/11/13 06:05
- 計算機科学 インド式かんたん計算法について 2 2022/06/02 04:27
- 経済学 マクロ経済学の問題で「均衡所得」の求め方が分かりません。 1 2022/11/20 13:31
- 統計学 不偏分散を計算するときに標準偏差和をn-1で割りますが、なぜ-1なのでしょうか? 「なぜnでなくn- 5 2022/07/04 14:54
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「.movpkg」「.m3u8」ファイル...
-
YahooのIDがロックされてしまい...
-
ゆうちょ認証アプリが使えません
-
WPS Officeって有料ですか?
-
先日からDigiBestTVで「デバイ...
-
iTunesを完全にアンインストー...
-
CAE
-
ITの見積もりってなんであんな...
-
jtrim 1.53cが正常な動きをし...
-
ラインで、自分が誰かを追加し...
-
写真データの解像度を上げるソフト
-
powerAutomateの使用メモリにつ...
-
Microsoft 365ってユーザー増え...
-
『ブ』の変換について
-
マックの表計算ソフト
-
サポートの終了したソフトから...
-
自分で描いた下手な絵を綺麗に...
-
PDFファイルを開きたいので...
-
Kritaについて
-
LDPlayerのマクロの編集方法を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの制御とOSの制御の違いはな...
-
WindowsCEをリモート操作
-
ハイパーリンク先の一括変更に...
-
エクセルの演算について
-
デスクトップの特定のアイコン...
-
為替レートをデスクトップに表...
-
実行ファイルのアイコンの変更方法
-
アイコン(拡張子.ico)で保存...
-
開いたページが閉じれないです!!
-
マクロ自動コピペ 貼り付ける場...
-
microsoft teamsの左のアイコン...
-
ランチャーとしてCLaunch アイ...
-
オープンオフィスのカルクで、...
-
Acrobatのアイコンが保存されて...
-
サクラエディタのアイコンを変...
-
エクセル 複数セルを絶対値で貼...
-
TOMCATのアイコンがタスクトレ...
-
エクセルで年齢式がコピーできない
-
ムービーファイルのアイコンを...
-
Win10タスクマネージャー確認で...
おすすめ情報