教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 PHP浮点数转换整型注意事项

PHP浮点数转换整型注意事项

发布时间:2016-10-15   编辑:jiaochengji.com
教程集为您提供PHP浮点数转换整型注意事项等资源,欢迎您收藏本站,我们将为您提供最新的PHP浮点数转换整型注意事项资源
PHP浮点数是否有小数了,我们要转换整理可能会丢失小数位数据了,下面我来给大家介绍PHP浮点数转换整型的一些事项,有兴趣的同学可进入参考。

先我们来做个实验说明问题的存在

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy1467')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy1467>

$f = 0.58;
var_dump(intval($f * 100.0));

也许你认为他会输出58,但是实际上他输出的是57.
原因是作为浮点型数据,其精度已经损失了一部分,达不到完全精确。所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。

在实际的开发中我们可以使用如下逻辑来解决这种境况

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy4776')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy4776>

intval(round(floatval($value) * 100));

round也可以使用ceil目的就是将精度调准。

您可能感兴趣的文章:
PHP浮点数转换整型注意事项
python中表达式4 0.5值的数据类型为?
php 总结数值计算的注意事项
浅谈PHP变量的8种类型以及弱类型
php浮点数精度用法分析
php浮点相减不等于0
php数据类型转换学习笔记
php怎么把字符串转换为数值?
php中浮点型(float)和整型(integer)数据类型详解
python有short类型吗

[关闭]
~ ~