Visual Studio 2010 Part21 (289レス)
Visual Studio 2010 Part21 http://mevius.5ch.net/test/read.cgi/tech/1412136476/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
238: デフォルトの名無しさん [] 2021/11/09(火) 10:38:25.69 ID:dO6zD4He VisualStudio2010のC#で作成した2つのアプリ(A,Bとする)と1つのDLL(C.dllとする) があって、C.dll内の関数のfloatやdoubleを使った計算が、Aから呼び出した場合とBから呼び出した場合 で異なる(誤差が出る)んだけど、何が原因なんだろう?ターゲットプラットフォームの 問題かと考えてAとBをx86にそろえたけど変わらない。 http://mevius.5ch.net/test/read.cgi/tech/1412136476/238
240: デフォルトの名無しさん [sage] 2021/11/09(火) 11:24:03.51 ID:dO6zD4He >>239 早速の返信ありがとうございます。 ビンゴかもしれません! 今、条件を変えて調査中です・・ http://mevius.5ch.net/test/read.cgi/tech/1412136476/240
242: デフォルトの名無しさん [sage] 2021/11/09(火) 12:29:22.98 ID:dO6zD4He 238です。 宣言は確かに異なっていたのですが、合わせてみても結果はかわりませんでした。 http://mevius.5ch.net/test/read.cgi/tech/1412136476/242
244: デフォルトの名無しさん [sage] 2021/11/09(火) 13:44:02.60 ID:dO6zD4He 誤差の出る部分を絞り込むと、math.sqrtに行き当たりました。 こんな感じです。 A:Math.sqrt(14) = 3.74165749549866 B:Math.sqrt(14) = 3.74165738677394 http://mevius.5ch.net/test/read.cgi/tech/1412136476/244
249: デフォルトの名無しさん [sage] 2021/11/09(火) 14:59:14.95 ID:dO6zD4He >>246 >>247 ありがとうございます。ヒントになりそうなので、こちらの方向で調べてみます。 http://mevius.5ch.net/test/read.cgi/tech/1412136476/249
250: デフォルトの名無しさん [sage] 2021/11/09(火) 16:31:34.45 ID:dO6zD4He >>246、>>247のヒントで、C.dll内にあるMath.Pow, Math.Sqrt, Math.Ceilingなど、 floatからdoubleにキャストされてしまう関数を再度floatにキャストしたり、小数部の 誤差を切り捨てるで、誤差を減らせることがわかりました。(なかったことにするとも言う) 最悪これでいきます。 AとBのアプリからC.dllの同じ関数を同じ引数で呼んでいるのに、なぜ戻り値が 異なるのかはわかっていません。そこがわかればスッキリ直せそうなのですが。 http://mevius.5ch.net/test/read.cgi/tech/1412136476/250
252: デフォルトの名無しさん [sage] 2021/11/09(火) 18:24:21.94 ID:dO6zD4He どこかで型変換してしまっているんですかねぇ。。 お伝えできていませんでしたが、A、BからC.dllへ渡す引数はすべてInt型です。 C.dll内の数値計算でfloat,doubleが使われています。C.dll内で型変換を してしまっているのなら、A,Bどちらからも条件は同じはずなのに・・ 私としてはVisualStudioの設定の問題かと思ってこちらに書き込みましたが、 スレチな可能性が出てきましたので、この辺でおいとましようかと思います。 http://mevius.5ch.net/test/read.cgi/tech/1412136476/252
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.015s