差分

ナビゲーションに移動 検索に移動

.NETのfloat.Epsilon定数は計算機イプシロンではない

40 バイト追加, 2018年8月14日 (火) 02:46
編集の要約なし
https://oku.edu.mie-u.ac.jp/~okumura/algo/
速攻で[[C言語]]からC#に[[移植]]した(ほぼ[[コピペ]]しただけ)。 <source syntaxhighlight lang="csharp">
using System;
}
}
</sourcesyntaxhighlight>
計算機イプシロンの定番の[[アルゴリズム]]といえば、変数をひたすら2で割り続け、ゼロになった瞬間のひとつ前を捉えるというもの。「1以上」という条件はコンピューターの指数と仮数の組み合わせで表現される浮動小数点数では、1未満だと指数部だけを使ってどこまでも小さくなってしまうためであり、なんとしても仮数部を使おうということらしい。<sourcesyntaxhighlight lang="csharp">
static double MachineEpsilon()
{
return eps;
}
</sourcesyntaxhighlight>
== 備考 ==
実行環境(主に[[CPU]]の違い)により計算結果が変化する点に注意すること。
[[アーキテクチャ]]がいっぱい[[ARM]]が主体のがいっぱいある[[Xamarin]]系は要注意。
[[category: .NET]]
[[category: Mono]]
[[category: Xamarin]]
匿名利用者

案内メニュー