Maison >développement back-end >tutoriel php >Un article analysant la démonstration d'erreur du méta-transfert PHP (avec des exemples de code)

Un article analysant la démonstration d'erreur du méta-transfert PHP (avec des exemples de code)

藏色散人
藏色散人avant
2023-02-03 15:15:493612parcourir

Cet article vous apporte des connaissances pertinentes sur PHP. Il présente principalement les erreurs qui se produisent lors de la conversion mutuelle des montants (yuans en points) via PHP. Les amis intéressés peuvent y jeter un œil ensemble. tout le monde aide.

Un article analysant la démonstration d'erreur du méta-transfert PHP (avec des exemples de code)

php Démonstration d'erreur de transfert de yuans

Explication

Une fois les montants convertis les uns dans les autres, il est très facile de faire des erreurs. J'ai donc écrit un article pour l'enregistrer.

La principale raison de l'erreur est que la variable interne est un nombre à virgule flottante.

Les étudiants intéressés peuvent l'essayer.

Mauvaise démonstration.

$price=20.08;
echo yuan_to_fen($price);

function yuan_to_fen($price)
{
  return intval(100 * $price);
}

function yuan_to_fen2($price)
{
  return floor(100 * $price);
}
function yuan_to_fen3($price)
{
  return (int)(100 * $price);
}

Démonstration correcte

$price=20.08;
echo yuan_to_fen($price);

function yuan_to_fen($price)
{
  return round(100 * $price);
}

Résumé

<?php
$a = 20.08;
$b = yuan_to_fen1($a);
$c = yuan_to_fen2($a);
$d = yuan_to_fen3($a);
$e = yuan_to_fen4($a);

$x = yuan_to_fen31($a);
$y = yuan_to_fen32($a);
$z = yuan_to_fen33($a);

echo(&#39;价格=&#39; . $b . "\n");//2007
echo(&#39;价格2=&#39; . $c . "\n");//2007
echo(&#39;价格3=&#39; . $d . "\n");//2007
echo(&#39;价格4=&#39; . $e . "\n");//2008

echo(&#39;方法31=&#39; . $x . "\n");//2008
echo(&#39;方法32=&#39; . $y . "\n");//2008
echo(&#39;方法33=&#39; . $z . "\n");//2008

function yuan_to_fen1($price)
{
  return intval(100 * $price);
}

function yuan_to_fen2($price)
{
  return floor(100 * $price);
}

function yuan_to_fen3($price)
{
  return (int)(100 * $price);
}

function yuan_to_fen4($price)
{
  return 100 * $price;
}

function yuan_to_fen31($price)
{
  return intval(strval(100 * $price));
}

function yuan_to_fen32($price)
{
  //返回浮点数。
  return round(100 * $price);
}

function yuan_to_fen33($price)
{
  //返回整型,比较推荐这种。
  return intval(round(100 * $price));
}

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer