任何人都可以为我的变量求和提供一个替代答案,而不是浮点十进制结果,并且可以将最终结果显示为整数值。确切地说是整数。
每个变量传递的结果均为十进制表示法,最终值大于我使用计算器得到的实际笔到纸。
此收益s echo $ter
导致浮点值43402777.777778。它应该更多地位于42,849,000的行中,而不是前者,后者的价值是我的笔和纸。问题是输出最终值是非科学符号。我需要直接的整数值。
$tan = 100000;
$g = 30;
$epp = 12;
$days = 365;
$bpe = 4;
$pp = 300;
$apg = $tan / $g;
$epg = $apg / $bpe;
$ppg = $epg / $epp;
$ypr = $ppg * $pp;
$tep = $ppg * $g;
$ter = $ypr * $tep;
echo $ter;
答案 0 :(得分:2)
floating-point arithmetic像计算机科学中的典型问题一样,具有自己的一系列问题。
通常可以使用库来提高准确性。 PHP提供了BC Math函数。
您的示例可以更改为使用此...
$tan = 100000;
$g = 30;
$epp = 12;
$days = 365;
$bpe = 4;
$pp = 300;
$apg = bcdiv($tan, $g);
$epg = bcdiv($apg, $bpe);
$ppg = bcdiv($epg, $epp);
$ypr = bcmul($ppg, $pp);
$tep = bcmul($ppg, $g);
$ter = bcmul($ypr, $tep);
echo '$ter: ', $ter, PHP_EOL; // 42849000
echo 'Formatted: ', number_format($ter), PHP_EOL; // 42,849,000