`
zhangjianbin
  • 浏览: 18955 次
  • 性别: Icon_minigender_1
  • 来自: 太原
最近访客 更多访客>>
社区版块
存档分类
最新评论

PHP 关于浮点数运算的问题

    博客分类:
  • PHP
 
阅读更多

<?php

$x = 0.5;

echo $x -= 0.1;echo "<br />";

echo $x -= 0.1;echo "<br />";

echo $x -= 0.1;echo "<br />";

echo $x -= 0.1;echo "<br />";

echo $x -= 0.1;echo "<br />";

?>

 

今天在做一些相关的浮点型数据运算时,出现  2.7755575615629E-17  的问题。当然具体实例不是这样的!

 

google 了半天,发现是浮点型数据运算时的,内部二进制数据转化时出的,问题!2.7755575615629E-17 出表示的是0。

 

可用round()函数,处理。

 

相关的参考:

http://forums.phpfreaks.com/topic/77481-number-addition/

http://blog.csai.cn/user1/9155/archives/2005/2800.html

 

 

分享到:
评论

相关推荐

    php中让人头疼的浮点数运算分析

    在 PHP 中,浮点数运算有时会引发一些不预期的结果,这主要是因为计算机内部表示浮点数的方式导致的精度问题。浮点数在计算机中并非精确存储,而是以二进制近似值的形式存在,这可能导致看似简单的计算产生微小的...

    用于更方便的解决PHP中超大数字和浮点数精度问题

    标题提到的问题是关于PHP在处理超出整型范围的数值时,会自动转为浮点数,但浮点数在计算机中存在精度限制,可能导致计算结果不准确。为了克服这个问题,开发者通常会借助一些专门处理大数字和高精度计算的库,如`...

    PHP浮点数精度问题汇总

    在了解了PHP浮点数精度问题和处理方法之后,值得注意的是,大多数情况下精度损失并不会对结果产生太大影响,尤其是在非金融计算中。但对于需要精确计算的应用,比如科学计算和金融计算,就需要格外注意并使用更精确...

    PHP7中的正确舍入任意精度的十进制浮点运算

    为了解决这个问题,PHP 7引入了一个名为"decimal"的扩展,提供了对任意精度十进制浮点数运算的支持。这个扩展允许开发者进行正确舍入的计算,避免了浮点数误差。 `decimal`扩展的核心是`Decimal`类,它提供了一种...

    简单谈谈php浮点数精确运算

    在编程领域,尤其是在涉及到数值计算时,浮点数的精确性是一个常见的问题。在PHP中,由于浮点数是以二进制形式存储的,对于某些十进制数值,如0.1或0.7,它们无法精确地转换为二进制,导致在计算时可能会出现精度...

    php 浮点数比较方法详解

    在PHP编程中,浮点数比较是一个常见的挑战,因为浮点数运算存在精度问题。这是因为计算机内部使用二进制表示浮点数,而某些十进制小数在转换为二进制时无法精确表示,导致计算后可能出现微小的误差。这种误差在比较...

    PHP 文章集锦,浮点数搞定度运算、签名验证、单点登录、安全防御、缓存技术、RPC、Composer

    │ ├─ 01-PHP 浮点数高精度运算 │ ├─ 02-PHP 接口签名验证 │ ├─ 03-SSO 单点登录 │ ├─ 04-PHP WEB 安全防御 │ ├─ 05-PHP 缓存技术 │ ├─ 06-三个水桶等分8升水的问题 -《算法的乐趣》 │ ├─ 07-...

    PHP下的浮点运算不准的解决方法

    在PHP编程语言中,浮点数运算的不准确性是一个常见的问题,主要源于计算机内部的二进制表示方式。由于十进制小数无法无损地转换为二进制形式,导致浮点数运算时可能会出现微小的误差,进而影响到结果的准确性。这个...

    php-bcmath php-mbstring-

    BC数学扩展主要用于需要高精度计算的场景,例如财务计算或科学计算,这些场景中浮点数运算的精度问题可能导致错误结果。扩展提供的主要函数包括`bcadd`(加法)、`bcsub`(减法)、`bcmul`(乘法)、`bcdiv`(除法)...

    IEEE 745标准的32位二进制浮点数与十进制浮点数转换代码C#

    IEEE 745标准,也称为IEEE 754-1985,是国际电工委员会(IEEE)制定的一套关于浮点数运算的标准,它定义了如何用二进制表示单精度(32位)和双精度(64位)浮点数。 在32位的IEEE 745标准中,一个浮点数被分为三个...

    php_bcmath.dllphp_bcmathphp_bcmathphp_bcmath.dll

    然而,需要注意的是,虽然bcmath提供了高精度,但它的计算速度相比内置的浮点数运算会慢一些。因此,在性能和精度之间需要找到合适的平衡点。 总的来说,`php_bcmath`扩展通过提供一系列大数运算函数,使得PHP能够...

    第3章PHP中的常量与变量

    需要注意的是,浮点数运算的精度问题,由于二进制表示的限制,某些十进制数字不能精确表示,可能导致意外的结果。为了更精确的计算,可以使用任意精度数学函数库或gmp函数库。 总的来说,PHP的常量和变量是程序中...

    PHP PHP7.4.30 程序及常见组合rpm 包打包下载

    10. `php7-bcmath-7.4.30-1.2.x86_64.rpm`:BCMath扩展提供了任意精度的数学运算,适用于需要处理大整数或高精度浮点数的场合。 通过安装这些RPM包,用户可以将他们的PHP环境升级到7.4.30版本,并获得必要的扩展...

    iprober PHP探针 v0.021.rar

    4、服务器性能检测:整数运算能力、浮点数运算能力、数据IO能力 5、自定义探测:MYSQL连接测试、MAIL发信测试、函数支持情况及PHP配置参数 包括简体中文版和繁体中文版 v0.021 更新: 1、修正UNIX系统在无SWAP分区时...

    php-bcmath安装包

    在 PHP 中,浮点数运算可能会因为计算机内部的二进制表示方式导致精度丢失,这对于需要高精度计算的场景是无法接受的。BCMath 提供了一套完整的函数集,可以确保在进行大整数或高精度浮点数运算时获得精确的结果。 ...

    php判断两个浮点数是否相等的方法

    由于PHP经常处理浮点数运算,因此在进行浮点数比较时常常遇到精度问题。在PHP中,由于浮点数的存储机制,直接使用等号(==)进行比较往往得到错误的结果。因此,这篇文章讲述了如何正确比较两个浮点数是否相等的实用...

    redhat php

    BCMath扩展主要用于处理大整数或浮点数,特别是在需要进行精确计算,例如财务计算、加密算法或者科学计算时,常规的浮点数运算可能会引入误差,BCMath扩展能避免这些问题。 **5.3.3** 是PHP的一个版本号,每个版本...

Global site tag (gtag.js) - Google Analytics