1. 首页
  2. 编程语言
  3. PHP
  4. php精度计算的问题解析

php精度计算的问题解析

上传者: 2021-08-30 19:51:55上传 PDF文件 91.32 KB 热度 11次

正确结果是 57,而不是 58其实这些结果都并非语言的 bug,但和语言的实现原理有关, js 所有数字统一为 Number, 包括整形实际上全都是双精度类型。而PHP会区分 int 还是 float。不管什么语言,只要涉及浮点运算,都是存在类似的问题,使用时一定要注意。说明:如果用php的+-*/计算浮点数的时候,可能会遇到一些计算结果错误的问题,比如上面 的 echo intval;会打印57,而不是58,这个其实是计算机底层二进制无法精确表示浮点数的一个bug,是跨语言的,我用python也遇到这个问题。所以基本上大部 分语言都提供了精准计算的类库或函数库,比如php有BC高精确度函数库,稍后我绍一下一些常用的BC高精确度函数使用。要搞明白这个原因, 首先我们要知道浮点数的表示:

下载地址
用户评论