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

4

5 回答 5

2

number_format仅应在漂亮打印数字时使用。它的返回值不应像您那样用于计算。

例子:

如果$A = 1045; thennumber_format($A,2)将是1,045.00现在,如果您将1,045.00其视为一个数字,它将是1逗号,剩余的 char 将被忽略,这1/2就是0.5您得到的。

于 2010-09-26T18:07:49.507 回答
2

您想要round(A, 2),而不是number_format()用于字符串表示(因此命名为“格式”)。

于 2010-09-26T18:14:18.823 回答
1

文档显示 number_format 返回一个字符串。在进行数学运算之前,您是否尝试过将 number_format() 的结果转换为数字类型?

于 2010-09-26T18:09:42.983 回答
1

我有类似的问题。如果我们使用数字格式 dec_point 和 crowd_separator 参数可能会更好。你可以使用 number_format($number, 2, '.', ''); 这将有助于删除你的千位分隔符

于 2014-04-18T08:54:07.210 回答
0

number_format使它成为一个带有数千之间逗号的字符串,并且逗号会使除数混淆以为这是基于您的语言环境的小数。

于 2010-09-26T18:09:01.690 回答