我对PHP一点也不熟悉,我有一个简短的问题。
我有两个变量pricePerUnit
和InvoicedUnits
。下面是将这些设置为值的代码:
$InvoicedUnits = ((string) $InvoiceLineItem->InvoicedUnits);
$pricePerUnit = ((string) $InvoiceLineItem->PricePerUnit);
如果我输出这个,我会得到正确的值。假设开票单位为5000
,价格为1.00
。
现在,我需要显示花费的总金额。当我将这两者相乘时,它不起作用(正如预期的那样,它们是字符串)。
但是我不知道如何在PHP中解析/转换/转换变量。
我该怎么办?
发布于 2009-01-26 21:35:53
$rootbeer = (float) $InvoicedUnits;
应该会为你做的。查看Type-Juggling。您还应该阅读String conversion to Numbers。
发布于 2010-07-18 20:15:18
好吧,如果用户写1,00000,那么floatvar将显示错误。所以-
floatval(preg_replace("/[^-0-9\.]/","",$input));
这要可靠得多。
用法:
$input = '1,03,24,23,434,500.6798633 this';
echo floatval(preg_replace("/[^-0-9\.]/","",$input));
发布于 2010-07-18 20:35:14
处理floats中的标记不是一项简单的任务。在英式/美式表示法中,你的格式是一千加46*10-2
1,000.46
但在德国,您需要更改逗号和点:
1.000,46
这使得在多语言应用程序中很难猜测正确的数字。
我强烈建议使用Zend Framework的Zend_Measure
来完成这项任务。该组件将根据用户的语言将字符串解析为浮点型。
https://stackoverflow.com/questions/481466
复制相似问题