首頁 >後端開發 >php教程 >一文解析PHP元轉分的錯誤示範(附程式碼實例)

一文解析PHP元轉分的錯誤示範(附程式碼實例)

藏色散人
藏色散人轉載
2023-02-03 15:15:493612瀏覽

這篇文章為大家帶來了關於php的相關知識,其中主要介紹了透過PHP進行金額(元轉分)的互相轉化出現的錯誤,有興趣的朋友下面一起來看一下吧,希望對大家有幫助。

一文解析PHP元轉分的錯誤示範(附程式碼實例)

php 元轉分的錯誤示範

說明

一旦進行金額的互相轉化,就非常容易發生錯誤。所以寫個文章記錄下來。

錯誤主要的原因是內部是浮點數變數。

有興趣的同學可以試試。

錯誤的示範。

$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);
}

正確的示範

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

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

總結

<?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));
}

推薦學習:《PHP影片教學

以上是一文解析PHP元轉分的錯誤示範(附程式碼實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除