Position actuelle: Accueil> Derniers articles> Avis! Comment empêcher les pièges causés par une erreur de point flottante lors de l'utilisation de Rad2deg

Avis! Comment empêcher les pièges causés par une erreur de point flottante lors de l'utilisation de Rad2deg

gitbox 2025-09-12
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Le contenu suivant n&#39;a rien à voir avec le sujet de l&#39;article,Peut être n&#39;importe quelPHPCode</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Commencer à traiter les données...\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">"Traitement des articles: <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">// L&#39;article commence</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h1>Avis!utiliser rad2deg Comment empêcher les pièges causés par des erreurs de point flottantes</h1>"</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>exister PHP milieu,<code>rad2deg()
" ; Echo "

En surface, cela semble très simple, mais dans les calculs réels, les erreurs de points flottantes peuvent entraîner des problèmes subtils.

"
; écho "

Source d'erreur de point flottante

"
; écho "

Les points flottants ne peuvent pas représenter avec précision toutes les décimales dans un ordinateur, elles ne peuvent généralement aborder qu'une seule valeur. Cela signifie:

"
; écho "
\ n"
; écho "echo rad2deg (pi ()); // attendu 180, réel possible 179.999999999999999999999999997 \ n" ; écho "" ; écho "

Cette légère erreur peut entraîner des erreurs logiques lors de la comparaison des angles ou de la prise de jugements conditionnels.

"
; écho "

Comment éviter les problèmes causés par les erreurs de points flottants

"
; écho "
    "
; écho "
  • Utilisez l'arrondi: lorsque des angles entiers exacts sont nécessaires, utilisez Round () :
  • "
    ; écho "
    \ n"
    ; écho "\ $ Degrees = Round (rad2deg (pi ())); // Le résultat est 180 \ n" ; écho "" ; écho "
  • Utiliser la comparaison de la tolérance: n'utilisez pas le signe égal pour comparer directement les numéros de points flottants, mais utilisez une plage qui permet des erreurs:
  • "
    ; écho "
    \ n"
    ; écho "\ $ epsilon = 0,00001; \ n" ; écho "if (ab (rad2deg (pi ()) - 180) <\ $ epsilon) {\ n" ; écho "Echo 'environ 180 degrés'; \ n" ; écho "} \ n" ; écho "" ; écho "
  • Gardez le calcul de radian, la conversion de retard: si possible, essayez de terminer toutes les opérations mathématiques dans les radians et ne convertissez en angles que lorsque l'affichage final est affiché:
  • "
    ; écho "
    \ n"
    ; écho "\ $ anglerad = pi () / 4; \ n" ; écho "\ $ resultrad = sin (\ $ anglerad) + cos (\ $ anglerad); \ n" ; écho "\ $ resultDeg = rad2deg (\ $ anglerad); // dernière conversion \ n" ; écho "" ; écho "" ; écho "

    Résumé

    "
    ; écho "

    Lors de l'utilisation de rad2deg () , les erreurs à virgule flottante sont inévitables, mais par l'arrondi , la comparaison de tolérance ou la conversion retardée , les problèmes logiques causés par ces erreurs peuvent être effectivement empêchés. Une manipulation minutieuse des nombres à virgule flottante est la clé pour garantir la correction des calculs mathématiques.

    "
    ; ?> <?php // Le contenu suivant n'a rien à voir avec le sujet de l'article et peut être n'importe quel code PHP écho "

    L'article est traité.

    "
    ; ?>