当创建带有 PHP 的 .xls 时,乘法在最后用星号求值

Multiplication evaluates with asterisk at the end when creating an .xls with PHP

标题可能有点令人困惑,但我有一个电子表格生成器,在这种情况下,它用于生成一个电子表格以上传到亚马逊,我正在努力将商品的价格从美元兑加元。

在我的文件中,我将商品的价格存储到 $price_amazon 中,然后我将它乘以用户输入的任何内容并存储到自身中。像这样;

$conversion = $row['rate'];
$price_amazon = $row['price'];

$price_amazon = $price_amazon*$conversion
#Evaluates to:
#19.99*1.24

问题来了,加载电子表格后,我的价格字段将具有正确的值,在本例中为 24.7876,但末尾有一个星号,因此为 24.7876*。所有价格单元格的末尾都有一个星号,我不确定到底发生了什么。下图准确地显示了我在说什么,直接取自电子表格。

然后只需删除字符串末尾的星号并将值转换为浮点数:

$price_amazon = (float) substr($row["price"], 0, -1);

甚至只是与 float 的类型对话都会删除末尾的星号:

$price_amazon = (float) $row["price"];

解决了问题。用户错误!在我的脚本中,我将所有变量回显到它们必要的单元格中,我笨手笨脚地按下星号键,试图做天知道的事情。这是它的样子

echo "<table>\n";
echo "<tr>
<td>$price_amazon*</td>

如您所见,这种错误很容易犯,而且很难发现,但这绝对是用户错误的案例。我感谢大家花时间帮助解决我的问题,但最终问题出在我身上!