PHP:小数位计算
本文提供了两种方法,分数的方法成为字符串。然后,”.“为了拦截。跟.子长后。另一个是关于小数*10的N钍。实例10的8再次钍8取余次。然后继续10余。取决于10结果的余数是不0。
相比来说。第一种方法要好不少,理由是这种,比方1.000004在非常边界的时候或者0.99999这样子PHP处理会有问题,会有误差,导致得到的位数不一样。并且精度难以把握,所以处理这种跟边界有关的问题最后能用字符串还是字符串来做。
第一种
private function _getFloatLength($num) {
$count = 0;
$temp = explode ( '.', $num );
if (sizeof ( $temp ) > 1) {
$decimal = end ( $temp );
$count = strlen ( $decimal );
}
return $count;
}
另外一种
function getfloatlength($a){
if(($a-(int)$a)<1E-9){
$count=0;
}
$a=fmod(1E9*$a,1E9);
while($a%10==0){
if($a==0)break;
$a=$a/10;
$count--;
}
return count;
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
PHP:小数位计算的更多相关文章
- 关于js开发中保留小数位计算函数(以向上取整或向下取整的方式保留小数)
前端工作中经常遇到数字计算保留小数问题,由于不是四舍五入的方式不能使用toFixed函数,本文采用正则表达式匹配字符串的方式,解决对数字的向上或向下保留小数问题: 1.向上保留小数(只要目标小数位后有 ...
- javascript小数乘法精确率问题
做前端页面开发的经常会遇到数值的乘法计算,带小数位计算会出现值溢出的问题,如: JS里做小数的乘法运算时会出现浮点错误,具体可以测试一下: <script>alert(11*22.9)&l ...
- js小数乘法精确率问题
研究拓扑图百分比乘法计算,带小数位计算会出现值溢出的问题 JS里做小数的乘法运算时会出现浮点错误: 结果是251.89999999999998 而不是251.9 这个问题想必有很多人为之头痛. 那 ...
- php数字操作,高精度函数,保留计算结果小数位
$l = 45456.51; $r = 455778.44; $e = '100.00'; $f= '500.00'; $res = bcadd($l, $r,3);//小数点后的位数,精度就是由这个 ...
- jquery 精度计算代码,指定精确小数位
jquery代码: /** * 将标签的值格式化 * id 标签id * min 最小值 * max 最大值 */ function toFloat(id,min,max){ var htmlVal ...
- java精度计算代码,指定精确小数位
java代码: public class App2 { public static void main(String[] args) { String val = checkNumber(" ...
- JS数字计算精度误差的解决方法
本篇文章主要是对javascript避免数字计算精度误差的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助. 如果我问你 0.1 + 0.2 等于几?你可能会送我一个白眼,0.1 + 0. ...
- 关于OC中的小数精确计算---NSDecimalNumber
NSDecimalNumber 翻译补充自:http://rypress.com/tutorials/objective-c/data-types/nsdecimalnumber 感谢乐于分享的大神 ...
- Vue 过滤器与计算属性
过滤器 V1.x 版本 过滤器基础 过滤器是一个通过输入数据,能够及时对数据进行处理并返回一个数据结果的简单函数.Vue有很多很便利的过滤器,可以参考官方文档,http://cn.vuejs.org/ ...
随机推荐
- Linux下使用Mysql
一.连接MySQL数据库 一个最简单的程序示例: #include <stdio.h> #include "mysql.h" int main() { MYSQL my ...
- Mysql 5.1升级为mysql 5.6遇到的问题及解决方式
yum是不可行的.因为yum源没更新,我已经使用了163网易的源,但是还是不行.最新版仍然不是5.6.没办法,mysql分区是5.5之后的功能,要使用分区功能,就必须升级.. 去官网下载地址:http ...
- boost计算随机数和计算crc32简单示例 - jwybobo2007的专栏 - 博客频道 - CSDN.NET
boost计算随机数和计算crc32简单示例 - jwybobo2007的专栏 - 博客频道 - CSDN.NET boost::crc_32_type crc32; crc32. ...
- uploadify,实际开发案例【选择完文件点击上传才上传】
<script type="text/javascript"> )+Math.floor(Math.random()*)+']-'; //设置随机文件前缀. $k(fu ...
- JPA的Embeddable注解
来源于http://zjsword2000.blog.163.com/blog/static/4583983320083184844734/ 在hibernate中实现自定义类型,只要实现UserTy ...
- BZOJ 2096([Poi2010]Pilots-单调队列-差值)
2096: [Poi2010]Pilots Time Limit: 30 Sec Memory Limit: 162 MB Submit: 190 Solved: 97 [ Submit][ ...
- Swift - 将表格UITableView滚动条移动到底部
有时我们需要通过代码自动将表格UITableView滚动条移动到尾部,只需要使用scrollToRowAtIndexPath方法即可,代码如下: 1 2 3 4 5 var secon = 1 //最 ...
- 图像编程学习笔记1——bmp文件结构处理与显示
文本内容转载自<数字图像处理编程入门>,代码为自己实现 1.1图和调色板的概念 如今Windows(3.x以及95,98,NT)系列已经成为绝大多数用户使用的操作系统,它比DOS成功的一个 ...
- 中科燕园GIS外包----机场project地理信息系统EGIS
对于大型机场建设project,不管project建设过程中.还是project建设完毕后.进入执行和维护阶段.必然要产生和使用到大量的各式各样的信息资料,包含project项目过程管理控制类文档,p ...
- Hbase0.96源码之HMaster(一)
从main()函数開始 public static void main(String [] args) { VersionInfo.logVersion(); new HMasterCommandLi ...