【问题标题】:PHP how to convert number exponential number to string?PHP如何将数字指数数转换为字符串?
【发布时间】:2017-09-16 13:02:23
【问题描述】:

我有一个以科学计数法存储的数字

2.01421700079E+14

我尝试过使用浮点数、字符串、整数,但我无法获得

0201421700079085 来自 2.01421700079E+14

1. echo (float)$awb;
2. echo number_format($awb, 0, '', '');
3. echo (int)$awb;
4. echo (string)$awb;
  1. 2.01421700079E+14 = 浮动
  2. 201421700079085 = 号码
  3. 201421700079085 = int
  4. 2.01421700079E+14 = 字符串

【问题讨论】:

    标签: php string floating-point number-formatting exponential


    【解决方案1】:

    printf 和朋友会这样做:

    <?php
    $awb = 2.01421700079E+14;
    $str = sprintf("%d", $awb);
    var_dump($str);
    

    输出:

    string(15) "201421700079000"
    

    您的原始数字中显然没有足够的信息来获得比这更高的精度。

    【讨论】:

    • 如果结果 0201421700079085 可能会有所不同,您有新的解决方案吗?
    • 你不能只发明数字。您的输入具有一定的精度,没有比这更高的精度了。
    • 用于从 excel 导入到 mysql 但如果我想在 mysql 中上传显示这个数字 2.01421700079E+14,但在我的 excel 中是数字 0201421700079085,你有什么解决办法吗?跨度>
    【解决方案2】:

    试试这个:

    number_format(1.2378147769392E+14,0,'','')
    

    【讨论】:

    • 我试试你的代码,结果是 201421700079085 但我希望结果是 0201421700079085,前面有零,因为数字字符串是 0201421700079085
    • php.net/manual/en/refs.math.php 尝试这些库以获得更好的精度。默认的 php 库仅在这种情况下提供有限的功能
    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 2015-06-24
    • 2015-08-17
    • 1970-01-01
    • 2021-08-26
    • 2012-01-21
    • 1970-01-01
    相关资源
    最近更新 更多