[過去ログ] C#, C♯, C#相談室 Part91 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
191(3): デフォルトの名無しさん [sage] 2016/08/05(金) 03:39:17.62 ID:WxI1qvCL(1/7) AAS
よく知らないんだが、doubleだと0.1を10回足しても1にならないって聞いたんだけど
doubleで問題ないって人は、0.1を10回足して結果表示するコード書いてみてほしい
必要な桁数の精度は整数部2桁、小数部2桁で4桁もあればいいから
203(1): デフォルトの名無しさん [sage] 2016/08/05(金) 12:59:22.80 ID:WxI1qvCL(2/7) AAS
>>192,201201(1): デフォルトの名無しさん [sage] 2016/08/05(金) 12:30:21.67 ID:P4D3CPGd(1/7) AAS
>>197
「そういう目的」でもdoubleで十分なんですよ。>>134
あえてdecimalを使わなきゃならない場面なんて普通はまずない。
それから、必用もないのにdecimalを使うような人(要するに誤差の問題をよく理解してない人)が
decimalを使っても意図したような誤差を含まない演算結果が得られないコードを
書く可能性が高い。
たしかに必要な精度が4桁で良いって前提なら問題ないように見えるけど
誤差は累積しないのか?
たとえば0.1を10回たして1.0を引く処理を1000万回ぐらい繰り返しても問題ないのか?
それともその場合はあえてdecimalを使わなきゃならない場面なのか?
206(1): デフォルトの名無しさん [sage] 2016/08/05(金) 15:56:50.82 ID:WxI1qvCL(3/7) AAS
>>204>>136136(3): デフォルトの名無しさん [sage] 2016/08/04(木) 02:15:13.20 ID:Vi80rqnk(10/10) AAS
>>135
有効数字が小数的1桁の数字(delta)を何回加減算しても
結果の有効数字は小数的1桁
だから累積誤差が±0.05を超えない限り、小数点1桁で丸めた値は必ず
数学的に正しい値になる。
もちろん演算結果の桁数(指数表記した時の仮数部の桁数ね)があまりに大きい
(doubleの場合確か16桁ぐらいだと思ったけど)と正しい結果にはならないけどね。
は、累積誤差が必要な桁数を超えない限り問題ないって書いてあるだけだろ
聞きたいのは、ほとんどの状況でdoubleでOKだって言ってる人に
じゃあどういう状況がdouble不可なんだって事
誤差がどの程度累積するかなんて、正確に見積もれるのか?
doubleとdecimalでどんだけ速度差あるのかも良くわからん
基本、適材適所なのはその通りだけど
速度(とメモリ)に問題なければ基本decimalでOKって考え方の方が安全だと思うんだがな
210(1): デフォルトの名無しさん [sage] 2016/08/05(金) 16:27:24.03 ID:WxI1qvCL(4/7) AAS
>>2091回の誤差は実行される式の値でわかるとしても
毎回同じ値の計算しかしないとでも?
何回実行されるかわからなくてもどれだけ累積するか見積もれると?
213(1): デフォルトの名無しさん [sage] 2016/08/05(金) 16:49:27.59 ID:WxI1qvCL(5/7) AAS
>>212212(1): デフォルトの名無しさん [sage] 2016/08/05(金) 16:38:02.60 ID:P4D3CPGd(4/7) AAS
>>210
一回の加減算でどの程度の誤差が発生しうるかは分かる(恐らく演算結果の
最上位桁の1の1e-15より小さい)のだから、どの程度の回数の演算まで「安全」かは
扱う数値の範囲と有効桁数から事前に計算できるでしょ。
安全な回数を実行回数が超えるような場合でもdoubleでOKなの?その場合はdouble不可なの?
乗除でどの程度の誤差が発生するかも事前に計算できるの?
安全な回数がわかったとして、実行回数がそれを超えるかどうかはどう見積もるの?
基本doubleでOKだって言うのは、毎回その安全な回数と予測実行回数を算出してるの?
それとも体感上とか経験上とか、あるいは何の根拠も無く安全な回数を超えないと思ってるだけなの?
217(1): デフォルトの名無しさん [sage] 2016/08/05(金) 17:31:35.93 ID:WxI1qvCL(6/7) AAS
>>215215(1): デフォルトの名無しさん [sage] 2016/08/05(金) 17:23:54.01 ID:P4D3CPGd(5/7) AAS
>>213
少しは自分の頭で考えてよw
累積誤差が「安全」なうち必用な位置で丸めを行えば
数学的に正しい答えが得られなくまで誤差が累積することを防げるでしょ?
乗除算(特に除算)の誤差についてはdoubleに固有の問題じゃない。
だからその途中で丸める必要性の有無やタイミングを正確に把握できないのに
基本doubleでOKだってのにどういう根拠があるの?って聞いてるんだが
222(1): デフォルトの名無しさん [sage] 2016/08/05(金) 18:32:40.21 ID:WxI1qvCL(7/7) AAS
正確に把握できないものの安全を確証できるのか
確かに俺には理解できんわ
つまり、基本dobleでOKってのは、安全を確証できるならdoubleでOkってことでいいのかね
どうやって安全を確証してるのかは俺にはわからんけど
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.057s