【发布时间】:2010-12-16 13:53:26
【问题描述】:
我有一个指数格式的浮点数,即4.1595246940817E-17,我想将其转换为十进制数,如 2.99 等。
我们将不胜感激。
format_number()sprintf() 似乎不适合我。
【问题讨论】:
-
指数或十进制只是显示数字的人类可读形式的方式。我不太确定你想要什么..
-
我不知道 2.99 来自哪里(您可能想告诉我们您真正期望什么),但您是否期待 number_format(4.1595246940817E- 17, 2) 产生 4.15?如果是这样,您的计算将偏离多个数量级(正确的结果将是 0.00)。
-
是的,我预计 4.1595246940817E-17 会产生 2.99。这是我的情况。分配大小:65536 字节 = 65536/1024 = 64KB。分配单位:49107。总大小= 49107*64 = 3142848KB = 3069.18MB= 2.99GB
-
这是我的代码
这会产生 2.99,但如果我从注册表/snmp 陷阱等获取实时值。那么它会产生 4.1595246940817E-17。<?php $au = 65536; //分配单元大小 ib 字节 $auk = $au / 1024; //分配单元大小,KB $totalSize = (49107*$auk)/(1024*1024);回声 $totalSize; ?> -
那和你的问题完全不同。试试下面 ajreal 和 Russell Dias 给出的解决方案
标签: php floating-point decimal