首页 > 编程语言 >PHP round 和number_format 区别

PHP round 和number_format 区别

时间:2024-03-28 10:48:31浏览次数:27  
标签:四舍五入 format 浮点数 number PHP round 精度

number_format 和round 有什么区别?

number_format()round() 在PHP中的底层计算方法并不完全一样,主要体现在它们的目的和结果表现形式上的差异,同时也可能影响到精度:

  • round() 函数主要用于对浮点数进行数学意义上的四舍五入,它的重点在于数值本身的精度调整。该函数接收两个参数:要四舍五入的数字和要保留的小数位数,它会根据给定的规则对数值进行精确的四舍五入处理,并返回一个新的浮点数。round() 函数遵循 IEEE 754 浮点数标准,这意味着在某些情况下可能会因为浮点数的内部表示而导致非常微小的精度误差。

  • number_format() 函数则更多地关注于数字的显示格式,它可以实现四舍五入的同时添加千位分隔符,并允许你控制小数点后的位数。当提供一个小数位数参数时,它也会进行四舍五入的操作,但是返回的是一个字符串而非浮点数。number_format() 的四舍五入规则与 round() 相同,但由于最终返回的是字符串格式的数字,所以它不会直接影响后续的数值计算。

因此,在精度方面,round()number_format() 在正常情况下对于四舍五入的精度控制是一致的。但如果涉及到浮点数计算的内在精度限制,或者是需要进一步参与数学计算的情景下,直接使用 round() 得到的浮点数结果更加适合,因为字符串形式的数字无法直接参与数学运算。

总之,两者在底层计算四舍五入时的算法逻辑应该是一致的,但应用场景和结果类型不同,这会影响到它们在实际项目中的使用选择。

例子:

image-20240327114537100



欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。

公众号

Don’t reinvent the wheel, library code is there to help.

文章来源:刘俊涛的博客


若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(_)

标签:四舍五入,format,浮点数,number,PHP,round,精度
From: https://www.cnblogs.com/lovebing/p/18101004

相关文章

  • 基于PHP+vue的社区居民互助交流系统016gm
    。开发环境开发语言:php后端框架:Thinkphp/Laravel前端框架:vue.js服务器:apache数据库:mysql运行环境:phpstudy/wamp/xammp等社区互助平台的功能分为管理员和用户两个部分,系统的主要功能包括首页,个人中心,用户管理,租房信息管理,失物招领管理,宠物代遛管理,停车位出租管理,其他管......
  • Thinkphp/Laravel校园二手书交易系统oc81w
     开发语言:php后端框架:Thinkphp/Laravel前端框架:vue.js服务器:apache数据库:mysql运行环境:phpstudy/wamp/xammp等 性能非的功能分为管理员,卖家用户和用户三个部分,系统的主要功能包括首页、个人中心、用户管理、卖家用户管理、图书分类管理、二手图书管理、求购图书管理、......
  • Codeforces Round 936 (Div. 2)
    Preface懒狗闪总开完组会不打CF直接滚去睡觉了可海星,感觉我好像退化成我们队训练最少的人了赛后补了下发现这场题竟然都会做,不过F不知道是我实现有问题常数大得一批加了读优才惊险卡过A.MedianofanArray签到,找到中位数后面与它相同的数的个数即可#include<cstdio>#incl......
  • DecimalFormat
    概述<code>DecimalFormat</code>isaconcretesubclassof<code>NumberFormat</code>thatformatsdecimalnumbers. Ithasavarietyoffeaturesdesignedtomakeitpossibletoparseandformatnumbersinanylocale,includingsupport......
  • WPF StringFormat在Label控件无效
    在WPF程序设计时,若使用Label控件绑定数据后StringFormat进行格式化显示时发现设定的StringFormat无效,但TextBlock控件中使用StringFormat显示正常,导致Label控件StringFormat失败的根本原因在于Label控件的Content属性是一个object对象,Binding.StringFormat仅作用于string类型属性......
  • Codeforces Round 915 (Div. 2) D
    CyclicMEX题面翻译对于一个长为\(n\)的排列\(p\),定义其权值为\(\sum_{i=1}^n\operatorname{mex}_{j=1}^ip_j\),也就是\(p_1\simp_i\)中没有出现过的最小自然数的和。然后你可以对这个排列进行移位操作,问最大权值。题目描述Foranarray$a$,defineitscostas$......
  • php:页面链接数据库(封装),其他页面引入方法
    数据库连接get_db_conn.php//创建连接$conn=mysqli_connect($servername,$username,$password,$dbname);<?php//数据库连接参数define('DB_SERVER','localhost');//数据库服务器的地址define('DB_USERNAME','root');//数据库账户define(......
  • PHP常用的无参函数绕过
    PHP常用的无参函数绕过getallheaders()这个函数的内容就是获取http所有的头部信息。接着我们可以用var_dump函数来把函数的执行结果都打印出来。这个函数有一个缺陷,它只能在apache中间件环境下使用。我们来在本地测试一下无参函数的具体效果。测试代码:<?phphighlight_file(__......
  • C++的format函数
    C++20引入了<format>库,它提供了类似于Python的格式化字符串的功能。你可以使用std::format函数来格式化字符串。format   格式控制标记  [[fill]align][sign][#][0][wigth][precision][type]下面依次讲解format的格式控制标记的基本用法:1.[[fill]align]这个格式......
  • php反序列化魔术方法
    目录系列文章1、php面向对象基本概念、类与对象:http://t.csdnimg.cn/5fRcg2、序列化与反序列化基础:http://t.csdnimg.cn/cZOZv一、魔术方法二、__construct()和__destruct()1、__construct() 2、__destruct()三、__sleep()和__weakup()1、__sleep()2、__wakeup()......