Ben*_*son 1 php math rounding subtraction addition
我有一个循环计算几个收入值,然后将它们加在一起,如下所示:
$SalesGrowth = $C2012Sales+$C2011Sales;
Run Code Online (Sandbox Code Playgroud)
在某些情况下,这是有效的,我得到了预期,例如:761.9 + 759.0 = 1520.9
在其他情况下,它看起来像PHP随机决定圆不正确(??)和更改单位(?),我得到:
8,788.0 + 8,794.3 = 16
这里发生了什么?我甚至试图回应由空格分隔的单独销售价值,并且它们正确显示,因此基本数字没有错.
解释为数字,8,788.0只是8,解析停在逗号处.
如果你想允许像千位分隔符这样的噱头,你需要一些区域设置感知的数字解析.
更新:如果您有Zend Framework,您可以这样做:
require_once('Zend/Locale/Format.php');
$locale = new Zend_Locale('en_GB'); // #1
$v = "8,410.5";
$n = Zend_Locale_Format::getNumber($v, array('locale' => $locale,'precision' => 3));
echo 2 * $number; // prints "16821"
Run Code Online (Sandbox Code Playgroud)
您可以尝试从环境中获取它,而不是对区域设置进行硬编码: new Zend_Locale(setlocale(LC_ALL, ""))