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)

藏色散人
Libérer: 2023-04-11 10:24:02
avant
3622 Les gens l'ont consulté

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);
}
Copier après la connexion

Démonstration correcte

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

function yuan_to_fen($price)
{
  return round(100 * $price);
}
Copier après la connexion

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));
}
Copier après la connexion

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!

Étiquettes associées:
php
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal