php5.4 round,php的round四含五入问题

2023-10-08 03:30

本文主要是介绍php5.4 round,php的round四含五入问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

静坐常思己过,闲谈莫论人非,能受苦乃为志士,肯吃亏不是痴人,敬君子方显有德,怕小人不算无能,退一步天高地阔,让三分心平气和,欲进步需思退步,若着手先虑放手,如得意不宜重往,凡做事应有余步。持黄金为珍贵,知安乐方值千金,事临头三思为妙,怒上心忍让最高。切勿贪意外之财,知足者人心常乐。若能以此去处事,一生安乐任逍遥。

php的round四含五入问题

作者:大鹏 发布于:2007-6-6 16:34 Wednesday

分类:PHP&MySql

代码:

[codes=php]<?php

echo   "round(5.005,2)=".round(5.005,2)."\n";

echo   "round(5.015,2)=".round(5.015,2)."\n";

echo   "round(5.025,2)=".round(5.025,2)."\n";

echo   "round(5.035,2)=".round(5.035,2)."\n";

echo   "round(5.045,2)=".round(5.045,2)."\n";

echo   "round(5.055,2)=".round(5.055,2)."\n";

echo   "round(5.065,2)=".round(5.065,2)."\n";

echo   "round(5.075,2)=".round(5.075,2)."\n";

echo   "round(5.085,2)=".round(5.085,2)."\n";

echo   "round(5.095,2)=".round(5.095,2)."\n";

$m=0.000000000000001;

echo   "\n";

echo   "round(5.005+{$m},2)=".round(5.005+$m,2)."\n";

echo   "round(5.015+{$m},2)=".round(5.015+$m,2)."\n";

echo   "round(5.025+{$m},2)=".round(5.025+$m,2)."\n";

echo   "round(5.035+{$m},2)=".round(5.035+$m,2)."\n";

echo   "round(5.045+{$m},2)=".round(5.045+$m,2)."\n";

echo   "round(5.055+{$m},2)=".round(5.055+$m,2)."\n";

echo   "round(5.065+{$m},2)=".round(5.065+$m,2)."\n";

echo   "round(5.075+{$m},2)=".round(5.075+$m,2)."\n";

echo   "round(5.085+{$m},2)=".round(5.085+$m,2)."\n";

echo   "round(5.095+{$m},2)=".round(5.095+$m,2)."\n";

?>   [/codes]

结果:

round(5.005,2)=5.01

round(5.015,2)=5.01

round(5.025,2)=5.03

round(5.035,2)=5.04

round(5.045,2)=5.05

round(5.055,2)=5.06

round(5.065,2)=5.07

round(5.075,2)=5.08

round(5.085,2)=5.09

round(5.095,2)=5.1

round(5.005+1E-015,2)=5.01

round(5.015+1E-015,2)=5.02

round(5.025+1E-015,2)=5.03

round(5.035+1E-015,2)=5.04

round(5.045+1E-015,2)=5.05

round(5.055+1E-015,2)=5.06

round(5.065+1E-015,2)=5.07

round(5.075+1E-015,2)=5.08

round(5.085+1E-015,2)=5.09

round(5.095+1E-015,2)=5.1

PHP手册:

例子   1.   round()   例子

[codes=php]<?php

echo   round(3.4);                   //   3

echo   round(3.5);                   //   4

echo   round(3.6);                   //   4

echo   round(3.6,   0);             //   4

echo   round(1.95583,   2);     //   1.96

echo   round(1241757,   -3);   //   1242000

echo   round(5.045,   2);         //   5.04

echo   round(5.055,   2);         //   5.06

?>       [/codes]

注意

在对正好一半的分数进行舍入时   round()   在偶数次舍去,在奇数次进位。如果你想迫使它对   .5(或   .05)总向一个方向舍入,加上或减去一个很小的因子。对一半值舍去对另一半值进一的背后原因是避免传统的银行问题,即如果总是舍去则银行从顾客那里多拿了钱,如果总是进一则银行最终会损失了钱。对此平均舍入则在统计上达到了平衡。

PHP手册中

echo   round(5.045,   2);         //   5.04

echo   round(5.055,   2);         //   5.06

而我代码的结果却是:

round(5.045,2)=5.05

round(5.055,2)=5.06

round(5.005,2)=5.01

round(5.015,2)=5.01

round(5.025,2)=5.03

round(5.035,2)=5.04

round(5.045,2)=5.05

round(5.055,2)=5.06

从这个结果看,也不明白"在偶数次舍去,在奇数次进位"是一个什么样的原则,

请各位PHP强人指教.

et_highlighter

发表评论

昵称

邮箱

网址

干净网络从你做起,切勿黏贴小广告

d5ab31d1e4534f94abf3d1cff3767a21.png

这篇关于php5.4 round,php的round四含五入问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/162405

相关文章

MySQ中出现幻读问题的解决过程

《MySQ中出现幻读问题的解决过程》文章解析MySQLInnoDB通过MVCC与间隙锁机制在可重复读隔离级别下解决幻读,确保事务一致性,同时指出性能影响及乐观锁等替代方案,帮助开发者优化数据库应用... 目录一、幻读的准确定义与核心特征幻读 vs 不可重复读二、mysql隔离级别深度解析各隔离级别的实现差异

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

MySQL磁盘空间不足问题解决

《MySQL磁盘空间不足问题解决》本文介绍查看空间使用情况的方式,以及各种空间问题的原因和解决方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录查看空间使用情况Binlog日志文件占用过多表上的索引太多导致空间不足大字段导致空间不足表空间碎片太多导致空间不足临时表空间

Mybatis-Plus 3.5.12 分页拦截器消失的问题及快速解决方法

《Mybatis-Plus3.5.12分页拦截器消失的问题及快速解决方法》作为Java开发者,我们都爱用Mybatis-Plus简化CRUD操作,尤其是它的分页功能,几行代码就能搞定复杂的分页查询... 目录一、问题场景:分页拦截器突然 “失踪”二、问题根源:依赖拆分惹的祸三、解决办法:添加扩展依赖四、分页

Java中InputStream重复使用问题的几种解决方案

《Java中InputStream重复使用问题的几种解决方案》在Java开发中,InputStream是用于读取字节流的类,在许多场景下,我们可能需要重复读取InputStream中的数据,这篇文章主... 目录前言1. 使用mark()和reset()方法(适用于支持标记的流)2. 将流内容缓存到字节数组

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

解决Failed to get nested archive for entry BOOT-INF/lib/xxx.jar问题

《解决FailedtogetnestedarchiveforentryBOOT-INF/lib/xxx.jar问题》解决BOOT-INF/lib/xxx.jar替换异常需确保路径正确:解... 目录Failed to get nested archive for entry BOOT-INF/lib/xxx

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.