PHP中处理浮点数的一些方法记录

PHP中处理浮点数的一些方法记录

请不要在程序中直接使用等号、大于、加、减、乘、除等操作浮点数,如果需要对浮点数进行以上操作,请使用下面的BC系列函数。以确保准确性及精度。


两个高精度数比较大小

int bccomp ( string $left_operand , string $right_operand [, int $scale ] )
  • left=right 返回 0
  • left<right 返回 -1
  • left>right 返回 1
  • $scale 需要比较的精度,即小数点后多少位

两个高精度数相加

string bcadd ( string $left_operand , string $right_operand [, int $scale ] )
  • $scale 相加后,返回几位小数

两个高精度数相减

string bcsub ( string $left_operand , string $right_operand [, int $scale ] )
  • $scale 相减后,返回几位小数

两个高精度数求余/取模

string bcmod ( string $left_operand , string $modulus )

两个高精度数相除

string bcdiv ( string $left_operand , string $right_operand [, int $scale ] )
  • $scale 相除后,返回几位小数

两个高精度数相乘

string bcmul ( string $left_operand , string $right_operand [, int $scale ] )
  • $scale 相乘后,返回几位小数

两个高精度数的次方值

string bcpow ( string $left_operand , string $right_operand [, int $scale ] )
  • $scale 次方,返回几位小数

高精度数的平方根

string bcsqrt ( string $operand [, int $scale ] )
  • $scale 返回几位小数

设置bc函数的小数点位数

bool bcscale ( int $scale )
  • $scale 几位小数
时间: 2024-10-09 20:17:32

PHP中处理浮点数的一些方法记录的相关文章

项目记录:spring+springmvc 项目中 @Transactional 失效的解决方法

第一步,修改spring的配置文件和springmvc的配置文件 --------------------------------applicationContext.xml <context:annotation-config/>  <context:component-scan base-package="com.xxx"> <context:exclude-filter type="annotation" expression=&

numpy函数库中一些经常使用函数的记录

##numpy函数库中一些经常使用函数的记录 近期才開始接触python,python中为我们提供了大量的库,不太熟悉.因此在<机器学习实战>的学习中,对遇到的一些函数的使用方法进行记录. (1)mat( ) numpy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都能够用于处理行列表示的数字元素. 尽管他们看起来非常类似,可是在这两个数据类型上运行同样的数学运算能够得到不同的结果,当中numpy函数库中matrix与MATLAB中matrices等价. 调用mat( )

js中的浮点数运算精度问题

js中的浮点数精度一般可以达到16位有效数字,因此有人使用parseFloat(x.toFixed(12))来提高js中浮点运算的精度. 经验证,这种方法当整数位数较少时基本正确,但对于较大或较小的运算结果是无效的,如1222.31*2344,直接运算结果是2865094.6399999997,parseFloat((1222.31*2344).toFixed(12))后仍然是2865094.6399999997,并未提升精度. 此时,应该先将结果归一化后再进行toFixed(12)这样的处理,

计算机中的浮点数(IEEE754)

IEEE读作[a?-'tr?p(?)l-i:],电气和电子工程师协会.这个是一个包括所有电子和计算机技术的专业团体,制定标准是其工作之一. IEEE浮点数算术标准(IEEE 754)是最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用. 整数运算和浮点数运算会有不同的数学属性是因为它们处理数字表示有限性的方式不同——整数的表示算然只能编码一个相对较小的数字范围,但是这种表示是精确的:而浮点数虽然可以编码一个较大的数值范围,但是这种表示只是近似的. IEEE规定的浮点数编码会将一个浮点数转

在Unity3d中解析Lua脚本的方法

由于近期项目中提出了热更新的需求,因此本周末在Lua的陪伴下度过.对Lua与Unity3d的搭配使用,仅仅达到了一个初窥门径的程度,记录一二于此.水平有限,欢迎批评指正. 网络上关于Lua脚本和Unity3d的配合使用的资料不多,例子工程大多相同.大概了解到针对性的插件有uLua.UniLua.KopiLua三种.试用了前两种,抛开效率与安全性不说,感觉uLua试用起来比较简单,本文只介绍uLua的使用步骤. uLua的原理是在Unity3d中解析字符串形式的Lua脚本,让Lua与C#相互传递参

ASP.NET页面优化性能提升方法记录

今天与大家分享:一种优化页面执行速度的方法.采用这个方法,可以使用页面的执行速度获得[8倍]的提升效果. 为了让您对优化的效果有个直观的了解,我准备了下面的测试结果截图: 测试环境:1. Windows Server 2003 SP22. Viaual Studio 2008,使用自带的WebDev.WebServer.EXE运行网站程序.3. (ThinkPad SL510):Core2 T6670 2.2GHz, 4G内存 二个红框中的数字反映了优化前后的执行时间.数字表明:优化前后,执行时

SQL Server中建立外键的方法

在SQL中建立外键约束,可以级联查询表中的数据,在C#代码生成器中,也能根据外键关系生成相应的外键表数据模型.外键也可防止删除有外键关系的记录,一定程度上保护了数据的安全性. 步骤: 1.要建立外键关系,首先要保证用来建立外键关系的列具有唯一性,即具有 UNIQUE 约束通常是某表的主键作为另外一个表的外键 2.打开数据库表,找到要建立外键的表.并确保其中要建立外键关系的列与主键表中的数据类型完全一致 3.在要建立外键关系的表中,在任意列上右击,选择[关系] 4.在外键关系对话框中,点击左下角的

asp中Server.MapPath的使用方法

老是忘记Server.MapPath的使用方法了,下面记录一下,以备后用: 总注:Server.MapPath获得的路径都是服务器上的物理路径,也就是常说的绝对路径 1.Server.MapPath("/") 注:获得应用程序根目录所在的位置,如 C:\Inetpub\wwwroot\. 2.Server.MapPath("./") 注:获得所在页面的当前目录,等价于Server.MapPath(""). 3.Server.MapPath(&qu

在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法

在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法 ==========方法1: --------1. 选相应的checkbox后  点删除按钮------------- <!-- *******************删除******************* -->     <input type="image" alt="delete"      src=&