【问题标题】:php number format value 999999 but output show 10000000php数字格式值999999但输出显示10000000
【发布时间】:2015-10-28 17:06:23
【问题描述】:

我尝试使用 php number_format 来显示 xxx,xxx,xx.xx 这样的数字。

当我回显值时,它会自动从 9999999 增加到 10000000。

有人知道如何显示数据结果 9,999,999 吗?

<?php echo number_format(99999999,2); ?>

【问题讨论】:

  • 所提供的代码不会使数字增加,除非是由于舍入问题(因为数字是一个浮点数,其值类似于99.999 会舍入到100.00)。您可以看到您发布的代码在 150 多个版本的 php 中运行,所有这些都具有相同的输出:3v4l.org/fmOM9
  • 如果您在对变量进行四舍五入时遇到问题,您可以通过对变量执行 var_dump 并直观地计算四舍五入以及该数字是否有两个以上的小数位来找出问题
  • 这是64位还是32位,也是linux还是win?
  • 我的窗口是 64 位的。

标签: php


【解决方案1】:

String number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," )

所以,用你的例子:

&lt;?php echo number_format(9999999, 2, '.', ','); ?&gt;

输出:

9,999,999.00

或者如果你不想要小数:

&lt;?php echo number_format(9999999, 0, '.', ','); ?&gt;

输出:

9,999,999

来自 php.net:

This function accepts either one, two, or four parameters (not three)

只是一个提醒。

【讨论】:

  • 只是好奇,但是您在哪里看到 3 个参数?示例代码显示 2 并且 OP 似乎试图找出为什么当他们输入 999999 时它显示 1000000
  • 我没有看到三个参数。我也从未声称看到 3 个论点。 OP 询问如何使提供的代码也提供9,999,999。我回答了这个问题。
  • 更好。这没有错或其他什么,只是看起来你试图纠正他们做错的事情。
  • 是的,我尝试了很多方法来获得 9,999,999 的浮点值,但它仍然显示 10,000,000
  • 仅使用此原始代码将不会产生您列出的结果。 3v4l.org/ClC2L 在 150 多个 PHP 版本上测试,输出相同。你的代码有问题。等等——浮点值? 9999999 不是浮点数,它是一个整数。你在打字吗?正如您在3v4l.org/Wpf4n 看到的那样,如果您将类型转换为浮点数,number_format 将获得不可预测的结果!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-28
  • 1970-01-01
相关资源
最近更新 更多