【问题标题】:round in PHP shows scientific notation instead of full numberPHP中的round显示科学记数法而不是完整数字
【发布时间】:2009-01-29 10:38:15
【问题描述】:

我正在尝试对包含 1400000 的变量进行回显。 所以写着:echo round(1400000); 这给出了 1,4E+6 而不是完整的数字。 有人知道如何充分展示它吗?

【问题讨论】:

    标签: php floating-point integer rounding


    【解决方案1】:

    看来问题是回合。 我用number_format() 改变了它,这很好。 感谢 Aron 和 Paul 的回答。

    【讨论】:

      【解决方案2】:

      关于你的问题,我在PHP网站上也遇到了this comment

      PHP 从标准十进制切换 指数符号的符号 某些“特殊”花车。你可以看到 这种“特殊”的部分列表 值与此:

      for( $tmp = 0, $i = 0; $i < 100; $i++ ) 
      {
          $tmp += 100000;
          echo round($tmp),"\n"; 
      } 
      

      所以,如果你添加两个浮点数,最终会得到 “特殊”值,例如1.2E+6,然后 将未修改的值放入 更新查询以将值存储在 十进制列,比如说,你可能会 得到一个失败的交易,因为 数据库将“1.2E+6”视为 varchar 数据,不是十进制。同样,您将 可能会收到 XSD 验证错误,如果 您将值放入 xml。

      老实说:这是其中之一 我见过的最奇怪的事情 超过 20 年的任何语言 编码,这是一个巨大的痛苦 解决方法。

      似乎还没有“真正的”修复,但从之前bug report Paul Dixon referered to 中的 cmets 来看,他的解决方案似乎有效。

      【讨论】:

        【解决方案3】:

        可能与这个bug report有关,所以你可以试试

        printf("%d", $myvar);
        

        【讨论】:

          猜你喜欢
          • 2023-03-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多