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

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

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

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