2017-08-01 45 views
0

标题可能有点令人困惑,但我有一个电子表格生成器,在这种情况下,它用于生成一个电子表格以上传到亚马逊,以及我正在将物品的价格从美元转换为CAD。当用PHP创建一个.xls时乘法用星号评估最终结果使用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 *。所有价格单元最后都有星号,我不确定究竟发生了什么。下面的图片显示了我正在谈论的内容,直接从电子表格中获取。

asterisk

回答

1

然后,只需除去星号在字符串的结束和值转换为浮动:

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

甚至只是一个类型的对话到float从端移除星号:

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

这似乎是你建议只隐藏潜在的问题,它不会纠正它。 – vincenth

+0

我很感激你花时间帮助我!我忘记提及我已经尝试使用substr无济于事。它只是删除最后一个NUMBER,而星号仍然存在。我开始认为这是用Excel而不是我的脚本。 Excel中的单元格实际上是一个值,而不是公式或等式。此外,刚刚注意到您的编辑,问题发生在乘法之后,当我将它删除并将$ price_amazon放入单元格时,它完美地工作。一旦我将它乘以用户输入的值或者我设置的静态值,我会在值的末尾得到一个星号。 – Brxxn

+0

所以你的乘法的**结果**实际上是一个_string_?你是否尝试过'var_dump'变量来检查asterix的来源? – Spingolini

0

找出问题所在。用户错误!再往下看我的脚本,在那里我将所有的变量都回传到他们必要的单元格中,我粗略地指出星号键试图做上帝知道什么。下面是它看起来像

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

正如你所看到的,这样很容易犯的错误,很难找到,但这肯定是用户错误的情况。我感谢大家花时间帮助解决我的问题,最终问题出在我身上!