ID:e9fui2Qqのレス一覧:


702デフォルトの名無しさん
2023/10/04(水) 10:07:17.16ID:e9fui2Qq
浮動小数点を経由するので誤差から免れることはできません(以下はイミディエイト ウィンドウでの実行と結果)
? Fix(33.6 * 10 ^ 2), Fix(33.6@ * 10 ^ 2), Fix(33.6! * 10 ^ 2)
3360 3359 3359
単精度でも同様

? Fix(33.6@ * 10 ^ 2) / 100, Fix(CCur(33.6@ * 10 ^ 2)) / 100, Fix(33.6@ * 100) / 100
33.59 33.6 33.6
べき乗を使うことが誤差を生む原因の一部でもあったりするので、CCur()で一度補正?したりで影響を減らすとかも考えられます。
704デフォルトの名無しさん
2023/10/04(水) 14:52:16.68ID:e9fui2Qq
? Fix(33.6@ * 10 ^ 2) , Fix(33.6@ * 100)
3359 3360
の結果からもわかるように、今回の場合は 10 ^ 2 の値が浮動小数点であり ≠100 である
ということです
なので「33.6@ * 浮動小数点」は33.6@を浮動小数点として計算する(はず)ので、その結果が
許容できない値になってしまったと
対策として CCur(33.6@ * 10 ^ 2)で本来の値に近くなるように書きましたが、
べき乗の部分を一度整数変数に代入してから「33.6@ * 整数変数」の形にしてもいいと思います(未検証)
この場合、通貨型は内部整数 * 整数なのでここまでの計算結果に誤差はでません。(乗数マイナスは別)

RoundDownDec()を大量に使用する場合はパフォーマンスも考慮しないといけませんが、乗数を整数変数経由に
する方が CCur()関数使うより早いのではと思います(昔、関数使うと遅いなと思った経験)。
100万回くらい(適当)ループして検証してみてください。

レス:1-200 201-400 401-600 601-800 801-1000 ALL

このスレへの固定リンク: http://5chb.net/r/tech/1544620479/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 
  ↓この板の人気?スレ↓(一覧)
 
Go language part 5
不動点コンビネータの解説求む
C言語なら俺に聞け 162
IBM Cloud、無料アカウントユーザーに通知なしで課金開始
プログラム板へのID導入の投票実施中 月曜0:00まで
フラグメンテーション対策スレ
X Window System PART-1
[次世代版] デモシーン(メガデモ)を語る #1
【ActionScript3】Webツールを作ろう【GPL】
P2P技術ってなんで廃れてしまったのでしょうか?
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
PowerShell -Part 7
[CLR] Booスレ [Unity]
C言語なら俺たちに聞け パート0001
2021年、jQueryのシェアがとうとう78%を超える
5chみたいな掲示板を立てたい!
rubyとperlを同時に独学することは可能か
コーディング、テスト、デバッグ、エディタ技術総合
flaskで掲示板を作りたいんだが
最も美しいプログラミング言語は? Part6
ワイのパソコンになにがおきたんや
クソ中学生。アプリを作りたい
【Python】スクリプト バトルロワイヤル48【pl,rb,php,js】
アセンブラ初心者スレッド 2
Lisp Scheme Part40
プログラミングを始めてみたい
a4です。P2P人工知能「T」開発。
Kotlin初心者質問スレ
「OS自作入門」
04:43:12 up 11 days, 1:52, 3 users, load average: 289.99, 199.15, 172.49

in 8.0979008674622 sec @[email protected] on 092317