私のスクリプトは、他の 2 つの数値 A を B で除算して数値 X を計算します。
X=A/B
X を計算する前に A で number_format(A,2) を使用すると、非常に奇数になります。実際の数値:
1,045.00 / 5 = 0.2
しかし、除算前に A に number_format を使用しないと、正しい答えが得られます。number_format はどういうわけか A を非数値にしていますか?
1045 / 5 = 209
私のスクリプトは、他の 2 つの数値 A を B で除算して数値 X を計算します。
X=A/B
X を計算する前に A で number_format(A,2) を使用すると、非常に奇数になります。実際の数値:
1,045.00 / 5 = 0.2
しかし、除算前に A に number_format を使用しないと、正しい答えが得られます。number_format はどういうわけか A を非数値にしていますか?
1045 / 5 = 209
number_format
数値をきれいに印刷する場合にのみ使用してください。その戻り値は、あなたが行ったように計算に使用しないでください。
例:
$A = 1045;
その後、数値として扱う場合はコンマになり、残りの文字は無視され、number_format($A,2)
取得されます。1,045.00
1,045.00
1
1/2
0.5
round(A, 2)
文字列表現用ではなく、必要ですnumber_format()
(したがって、「フォーマット」と呼ばれます)。
ドキュメントは、number_format が文字列を返すことを示しています。数学的操作の前に、number_format() の結果を数値型にキャストしようとしましたか?
同様の問題がありました。数値形式の dec_point と千の区切りのパラメーターを使用すると、より良い結果が得られる可能性があります。number_format($number, 2, '.', ''); を使用できます。桁区切り記号を削除するのに役立ちます
number_format
千の間のコンマを含む文字列になります。コンマは、ロケールに基づいたデシメルであると除数を混乱させます。