栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

不带科学计数法显示浮点值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

不带科学计数法显示浮点值

sprintf('%f',$ret)
不起作用,它返回
0.000000
。溢出?

sprintf
可以,但是您在这里错过了一点。

0.000000
没有溢出。只是
sprintf
对于
%f
修饰符,默认情况下使用6位数字。另外,请注意
%f
区域设置,
%F
可能更适合。

您可能希望使用更多数字,例如说4000000(400万):

$ php -r "printf('%.4000000F', 1*0.000000001);"Notice: printf(): Requested precision of 4000000 digits was truncated to PHP maximum of 53 digits in Command line pre on line 1Call Stack:    0.0001     319080   1. {main}() Command line pre:0    0.0001     319200   2. printf() Command line pre:10.00000000100000000000000006228159145777985641889706869

如该示例所示,不仅有一个公共值(6位数字),而且还有一个最大值(可能取决于PHP所执行的计算机系统),在本例中,如警告所示,这里被截断为53位数字。

由于您的问题,我想说您要显示:

0.000000001

这是九位数字,因此您需要这样写:

sprintf('%.9F',$ret)

但是,您可能要这样做:

rtrim(sprintf('%.20F', $ret), '0');

它将从右边删除零:

0.000000001

希望这会有所帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381925.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号