永发信息网

phpexcel 获取99.9 得到的是99.90000000000001

答案:1  悬赏:60  手机版
解决时间 2021-04-07 09:25
phpexcel 获取99.9 得到的是99.90000000000001
最佳答案
这个不是phpexcel的问题,这个问题源于浮点数的表示方式,如果你会其它语言,你会发现其实很多其它编程语言也会有这种情况。

php官方文档也有说明:

浮点数的精度有限。尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致的最大相对误差为 1.11e-16。非基本数学运算可能会给出更大误差,并且要考虑到进行复合运算时的误差传递。
此外,以十进制能够精确表示的有理数如 0.1 或 0.7,无论有多少尾数都不能被内部所使用的二进制精确表示,因此不能在不丢失一点点精度的情况下转换为二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999999991118...。

所以,如果你想在处理浮点数的时候得到相对满意的值,可能就需要自己专门处理,如:
$v = round($v, 2);

如果有兴趣,可以看下这里(百度规则限制,你自己吧url中的空格去掉):
http:// php. net /manual/zh/language.types.float.php
http:// en. wikipedia. org/wiki/IEEE_floating_point
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有没有必要上沪牌
殡葬业职位包括哪些
静夜思的作者是谁在什季节写的表达他什么感情
深证指数代码是什么
卡丽斯干洗地址在什么地方,想过去办事,
现金日记账,过程中有一栏结余是负数看成了正
凯达通讯我想知道这个在什么地方
路透财富代销安信信托权益类信托计划吗?
德宝西克曼跟金牌厨柜,哪个好?
大便完擦的时候是桔红色的水为什么
我的苹果笔记本更新了macOX 10.12以后每次启
14.4的直径可以佩戴14.5 的吗
想用3.7v2600mah组装一组60V32Ah 需要多少节
为什么踩刹车车还往前跑?
个sim卡和一个sd卡手机有哪些
推荐资讯
已知圆的周长是X(CM),面积是Y(CM)平方。求
冰和水是同一种物质吗,为什么
03款广本雅阁怎样的?
川香鸡公煲怎么去啊,有知道地址的么
注册美图手机官网会员时发现自己嘚imei号被人
有两瓶无色液体,其中一瓶是蒸馏水,另一瓶是
我自已做的泡鸡脚泡了三天可以吃吗?会死吗?
新版三国中诸葛亮出祁山烧博望分别是哪一集
一个小胖子,衣服七八层,脱下绿衣服,满身黄
江门在哪里啊,我有事要去这个地方
求x等于多少
Word 中的宋体 小四号字 在Photoshop中应该用
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?