我根本不熟悉PHP并且有一个简单的问题.
我有2个变量@pricePerUnit和@invoicedUnits.以下是将这些值设置为值的代码:
$InvoicedUnits = ((string) $InvoiceLineItem->InvoicedUnits); $pricePerUnit = ((string) $InvoiceLineItem->PricePerUnit);
如果我输出这个,我得到正确的值.让我们说5000个发票单位和1.00的价格.
现在,我需要显示花费的总金额.当我将这两者相乘时,它不起作用(正如预期的那样,这些是字符串).
但我不知道如何在PHP中解析/转换/转换变量.
我该怎么办?
$rootbeer = (float) $InvoicedUnits;
应该为你做.看看Type-Juggling.您还应该阅读String转换为Numbers.
您需要非语言环境感知floatval
功能:
float floatval(mixed $ var) - 获取字符串的float值.
例:
$string = '122.34343The'; $float = floatval($string); echo $float; // 122.34343
好吧,如果用户写1,00,000,那么floatvar将显示错误.所以 -
floatval(preg_replace("/[^-0-9\.]/","",$input));
这更可靠.
用法:
$input = '1,03,24,23,434,500.6798633 this'; echo floatval(preg_replace("/[^-0-9\.]/","",$input));
处理浮点数中的标记是一项非常重要的任务.在英语/美国符号中,您可以格式化一千加46*10-2:
1,000.46
但在德国你会改变逗号并指出:
1.000,46
这使得在多语言应用程序中猜测正确的数字变得非常困难.
我强烈建议使用Zend Framework的Zend_Measure来完成这项任务.该组件将通过用户语言将字符串解析为float.