sujin190
V2EX  ›  问与答

这个是 php bug 么?

  •  
  •   sujin190 · Nov 5, 2014 · 4325 views
    This topic created in 4385 days ago, the information mentioned may be changed or developed.
    ➜ admin git:(master) ✗ php -r "echo floatval('17.9')*100;"
    1790 ➜ admin git:(master) ✗ php -r "echo intval(floatval('17.9')*100);"
    1789

    有什么好办法解决不?
    7 replies  •  2017-12-15 16:59:07 +08:00
    chemzqm
    chemzqm
    Nov 5, 2014
    1
    只能说是坑吧
    http://php.net/manual/en/function.intval.php
    下面很多例子
    mcfog
    mcfog
    Nov 5, 2014❤️1
    2
    这不是PHP的Bug,而是浮点数的二进制表示的局限性

    详见 http://www.laruence.com/2013/03/26/2884.html

    至于解决方法,可以用bc_系列的方法,
    xoxo
    xoxo
    Nov 5, 2014❤️1
    3
    这是精度丢失

    解决办法如楼上: bc_高精度计算库
    mahone3297
    mahone3297
    Nov 5, 2014
    4
    这怎么能算是php的bug。。。
    a591826944
    a591826944
    Nov 5, 2014
    5
    这是 计算机的 bug
    sujin190
    sujin190
    OP
    Nov 5, 2014
    6
    @mcfog
    @xoxo
    学习了,感谢,发现python下也是一样的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   774 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 23:12 · PVG 07:12 · LAX 15:12 · JFK 18:12
    ♥ Do have faith in what you're doing.