PHP之浮点数计算比较以及取整数不准确的解决办法
php有意思的现象,应该是很多编程语言都会有这样的现象。这个是因为计算机的本身对浮点数识别的问题.....下面通过代码给大家展示下:
$f = 0.58; var_dump(intval($f * 100 *100)); //结果5799 var_dump((float)($f * 100 *100)); //结果5800 echo (int)((0.1+0.7)*10); //结果7 echo (float)((0.1+0.7)*10); //结果8 <?php $a = 0.1; $b = 0.7; var_dump(($a + $b) == 0.8); //打印出来的值居然为 boolean false <?php $a = 0.1; $b = 0.7; var_dump(bcadd($a,$b,2) == 0.8);// bool true
再次需注意的是在浮点数计算的时候,切记不要把浮点数转换成整形,否则会出现不可能预估的错误。
以上代码就是PHP之浮点数计算比较以及取整数不准确的解决办法。
相关推荐
-
总结PHP中数值计算的注意事项
一:四舍五入 1.round - 对浮点数进行四舍五入 float round ( float $val [, int $precision ] ) 2:floor - 舍去法取整(向下取整) float floor ( float $value ) 3.ceil - 进一法取整(向上取整) float ceil ( float $value ) 坑点: 当数值为整数的时候 例如 11 那么floor(11) = 10 , ceil (11) = 12: 问题显而易见,所以计算的时候要格外注
-
PHP入门教程之数学运算技巧总结
本文实例讲述了PHP入门教程之数学运算技巧.分享给大家供大家参考,具体如下: Demo1.php <?php // $a = '5'; // $b = 7+$a; // echo $b; $a = 'a'; $b = 7+$a; echo $b; ?> Demo2.php <?php $a = 10.0; //is_int -- 检测变量是否是整数 if(is_int($a)) { echo '通过'; }else{ echo '不通过'; } ?> Demo3.php <?
-
php计算多维数组中所有值总和的方法
本文实例讲述了php计算多维数组中所有值总和的方法.分享给大家供大家参考.具体实现方法如下: php 内置函数 array_sum() 函数返回数组中所有值的总和,只能返回一维数组的总和: 计算多维数组所有值的和就要自定义函数了: function get_sum($array) { $num = 0; foreach($array as $k => $v) { if(is_array($v)) { $num += get_sum($v); } } return $num + array_sum
-
PHP几个数学计算的内部函数学习整理
round round - 对浮点数进行四舍五入.round 函数语法如下: round(float,precision) 其中参数 precision 表示小数点后面要保持的精度位数.如果不写参数 precision,表示四舍五入到整数位,比如: echo round(3.4); // 3echo round(3.5); // 4echo round(3.6); // 4 如果 precision 为2,表示四舍五入到小数点后2位.示例如下: echo round(1.95583, 2); /
-
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
本文实例讲述了PHP计算数组中值的和与乘积的方法.分享给大家供大家参考,具体如下: 一.概述: array_sum() 函数用于计算数组中所有值的和. array_product() 函数用于计算数组中所有值的乘积. 二.使用示例: array_sum() PHP array_sum() 函数用于计算数组中所有值的和,以整数或浮点数返回计算结果,非数字的单元将视作 0 . 语法: number array_sum( array array ) 例子: <?php $arr_a = array(1
-
php数字游戏 计算24算法
算法思路:把每一个数字看做一个独立的数学表达式,表达式之间加上标点符号组合成新表达式,一共组合4次,表达式之间的所有组合可以通过递归来实现. 代码如下: 复制代码 代码如下: <?php /** * A 24 maker * @version 1.0.0 * @author laruence<laruence at yahoo.com.cn> * @copyright (c) 2009 http://www.laruence.com */ class TwentyFourCal { pu
-
php数组函数序列之array_sum() - 计算数组元素值之和
array_sum()定义和用法 array_sum() 函数返回数组中所有值的总和. 如果所有值都是整数,则返回一个整数值.如果其中有一个或多个值是浮点数,则返回浮点数. PHP 4.2.1 之前的版本修改了传入的数组本身,将其中的字符串值转换成数值(大多数情况下都转换成了零,根据具体制而定). 语法 array_sum(array) 参数 描述 array 必需.规定输入的数组. 例子1 复制代码 代码如下: <?php $a=array(0=>"5",1=>&q
-
php实现的简单美国商品税计算函数
本文实例讲述了php实现的简单美国商品税计算函数.分享给大家供大家参考.具体如下: <?php function tax($total,$tax_amount){ $tax_rate = $tax_amount * .01; $tax = $total * $tax_rate; return $value = $tax + $total; } $price = 50.00; //In U.S. Dollars $taxrate = 6.5; //In percentage echo "$&
-
PHP数学运算与数据处理实例分析
本文实例讲述了PHP数学运算与数据处理方法.分享给大家供大家参考,具体如下: 一.数值数据类型 PHP中,数字或数值数据以及数学函数的使用很简单.基本来说,要处理两种数据类型:浮点数和整数.浮点数和整数值的内部表示分别是C数据类型double和int.类似于C,PHP中这些数据类型遵循同样的一组规则. PHP是一种松散类型的脚本语言,变量可以根据计算的需求改变数据类型.这就允许引擎动态地完成类型转换.所以,如果计算中包含数值和字符串,字符串会在完成计算之前转换为数值,而数值则会在与字符串连接之前
-
PHP计算加权平均数的方法
本文实例讲述了PHP计算加权平均数的方法.分享给大家供大家参考.具体如下: <form action="index.php" method="post"> 请输入你的课程的数量:<input type="text" name="course_number"/><br/> <input type="submit" value="submit"/&g
-
PHP编程求最大公约数与最小公倍数的方法示例
本文实例讲述了PHP编程求最大公约数与最小公倍数的方法.分享给大家供大家参考,具体如下: //求最大公约数 function max_divisor($a,$b) { $n = min($a, $b); for($i=$n; $i>1; $i--) { if (is_int($a/$i)&&is_int($b/$i)) { return $i; //此处如果用echo $i;则输出结果为432:故应区分echo.return的区别 } } return 1; } //求最小公倍数 f
-
php计算两个整数的最大公约数常用算法小结
本文实例讲述了php计算两个整数的最大公约数常用算法.分享给大家供大家参考.具体如下: 复制代码 代码如下: <?php //计时,返回秒 function microtime_float () { list( $usec , $sec ) = explode ( " " , microtime ()); return ((float) $usec + (float) $sec ); } /////////////////////////////////
随机推荐
- 简单易用的倒计时js代码
- Vue 2.0入门基础知识之内部指令详解
- 详解Spring Boot实战之Filter实现使用JWT进行接口认证
- javascript实现下拉提示选择框
- asp.net下检测远程URL是否存在的三种方法
- 实例讲解yii2.0在php命令行中运行的步骤
- c#对xml增删改查操作示例
- Android 自定义gradle property详解及实例代码
- 浅谈Android Activity与Service的交互方式
- 详解Android Webview加载网页时发送HTTP头信息
- vue事件修饰符和按键修饰符用法总结
- 浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解
- MYSQL必知必会读书笔记第四章之检索数据
- JQuery模板插件 jquery.tmpl 动态ajax扩展
- jQuery实现html table行Tr的复制、删除、计算功能
- jQuery实现设置、移除文本框默认值功能
- 一步步教会你微信小程序的登录鉴权
- python实现基于朴素贝叶斯的垃圾分类算法
- layui table动态表头 改变表格头部 重新加载表格的方法
- 详解MySQL是如何解决幻读的