2017-08-01 1 views
0

タイトルが多少混乱するかもしれませんが、スプレッドシートジェネレータがあります。この場合、Amazonにアップロードするスプレッドシートを生成するために使用されます。私はアイテムの価格を米ドルからCADに変換しようとしています。PHPで.xlsを作成するときに、最後にアスタリスクで評価されます

私のファイルでは、私のアイテムの価格を$ 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

そして単なる文字列の末尾にアスタリスクを削除し、floatに値を変換:

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

あるいは単にタイプの会話が終了からアスタリスクを削除:

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

あなたが示唆しているように、潜在的な問題を隠すだけで、修正されないようです。 – vincenth

+0

私はあなたを助けて時間を割いていただきありがとうございます!私はすでにsubstrを無駄にしようとしたことを忘れていました。アスタリスクがまだ残っている間に最後のNUMBERが削除されます。私はそれがExcelで、私のスクリプトではないと思っています。 Excelのセルは実際には値であり、数式や方程式ではありません。また、ちょうどあなたの編集に気づいた、問題は乗算の後に、私はそれを削除し、ちょうどセルに$ price_amazonを置く、それは完璧に動作します。ユーザーが入力した値、あるいは私が設定した静的な値でもそれを乗算すると、値の最後にアスタリスクが付きます。 – Brxxn

+0

あなたの乗算の**結果**は実際に_string_ですか?あなたは変数を 'var_dump'しようとしましたが、どこからアスタリスクが来たのか確認しましたか? – Spingolini

0

この問題を解消しました。ユーザーエラー!私のスクリプトの下で、すべての変数を必要なセルにエコーしているところで、私は神のことをやろうとしているアスタリスクのキーを強く指差しました。ここであなたが見つけるために作ると難しいし、このように非常に簡単な間違いを見ることができるように、それは

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

ように見えたものだが、これは間違いなく、ユーザーエラーのケースでした。私の問題を解決するために時間を割いてくださった皆様に感謝します。

関連する問題