有人可以演示变量近似来更简洁地回显最终变量结果

时间:2018-10-09 03:17:01

标签: php floating-point

任何人都可以为我的变量求和提供一个替代答案,而不是浮点十进制结果,并且可以将最终结果显示为整数值。确切地说是整数。

每个变量传递的结果均为十进制表示法,最终值大于我使用计算器得到的实际笔到纸。

此收益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;

1 个答案:

答案 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

演示〜https://3v4l.org/vlRaS