現在の位置: ホーム> 最新記事一覧> 知らせ! rad2degを使用するときに浮動小数点エラーによって引き起こされるトラップを防ぐ方法

知らせ! rad2degを使用するときに浮動小数点エラーによって引き起こされるトラップを防ぐ方法

gitbox 2025-09-12
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 次のコンテンツは、記事のトピックとは何の関係もありません,何でもかまいませんPHPコード</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"データの処理を開始します...\n"</span></span><span>;
</span><span><span class="hljs-variable">$dummyArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">range</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$dummyArray</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"アイテムの処理: <span class="hljs-subst">$value</span></span></span><span>\n";
}
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 記事が始まります</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h1>知らせ!使用 rad2deg 浮動ポイントエラーによって引き起こされるトラップを防ぐ方法</h1>"</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>存在する PHP 真ん中,<code>rad2deg()
" ;エコー

表面的には、これは非常に簡単に思えますが、実際の計算では、浮動小数点エラーはいくつかの微妙な問題につながる可能性があります。

エコー

フローティングポイントエラーのソース

;エコー

フローティングポイントは、コンピューター内のすべての小数を正確に表すことはできません。通常、1つの値にのみアプローチできます。これは、次のことを意味します

エコー "
\ n"
;エコー "echo rad2deg(pi()); //予想180、実際の可能性のある179.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999エコー "" ;エコー

この小さなエラーは、角度を比較したり、条件付き判断を下すときに論理的なエラーにつながる可能性があります。

エコー

浮動点エラーによって引き起こされる問題を防ぐ方法

エコー "
    "
;エコー
  • 丸めを使用:正確な整数角が必要な場合は、 round() : "を使用します
  • エコー "
    \ n"
    ;エコー "\ $ degrees = round(rad2deg(pi())); //結果は180 \ n" ;エコー "" ;エコー
  • 許容範囲の比較を使用:等記号を使用して浮動小数点数を直接比較しないでください。ただし、エラーを許可する範囲を使用してください。
  • ;エコー "
    \ n"
    ;エコー "\ $ epsilon = 0.00001; \ n" ;エコー "if(abs(rad2deg(pi())-180)<\ $ epsilon){\ n" ;エコー 「エコー」約180度 '; \ n " ;エコー "} \ n" ;エコー "" ;エコー
  • ラジアンの計算を維持し、変換を遅延させる:可能であれば、すべての数学操作をラジアンで完了するようにし、最終ディスプレイが表示されたときにのみ角度に変換してください。
  • エコー "
    \ n"
    ;エコー "\ $ anglerad = pi() / 4; \ n" ;エコー "\ $ resultrad = sin(\ $ anglerad) + cos(\ $ anglerad); \ n" ;エコー "\ $ resultdeg = rad2deg(\ $ anglerad); // last Conversion \ n" ;エコー "" ;エコー "" ;エコー "

    まとめ

    "
    ;エコー

    rad2deg()を使用する場合、浮動小数点エラーは避けられませんが、丸め耐性の比較、または変換の遅延により、これらのエラーによって引き起こされる論理的問題を効果的に防ぐことができます。浮動小数点数の慎重な取り扱いは、数学的計算の正確性を確保するための鍵です。

    ; ?> <?php //次のコンテンツは記事のトピックとは何の関係もありませんし、任意のPHPコードにすることができます エコー

    記事は処理されています。

    ; ?>