• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

问一个FLOAT的有关问题

php 搞代码 4年前 (2022-01-24) 22次浏览 已收录 0个评论

问一个FLOAT的问题
//$usec:当前微秒数,$sec:当前秒数
list ( $usec, $sec ) = explode ( ‘ ‘, microtime () );
$time1 = ( float ) $usec + ( float ) $sec;

list ( $usec, $sec ) = explode ( ‘ ‘, microtime () );
$time2 = ( float ) $usec + ( float ) $sec;

echo $time2 – $time1;

结果输出一个类似这样的数:3.40938568115E-5

问题:
单独打印$usec和$sec,输出这样的数:0.95312700 1326693637
$time输出类似这样的数:1326693637.95
那为什么用$time1-$time2输出成了“3.40938568115E-5 本文来源gaodai$ma#com搞$$代**码)网8搞代gaodaima码”???

谢谢

——解决方案——————–

探讨

引用:

可以自己定义格式
PHP code

echo sprintf(‘%.16F’, $time2 – $time1);

我现在不解的是为什么默认会出来这种情况。。。

——解决方案——————–
因为数值太小了,无法用小数表示,所以只能有科学计数法表示
——解决方案——————–
因为你的 $time2 – $time1 数值太小,大概等于 0.0000340938568115
这样前面的几个0影响精度显示,所以自动改为科学计数法
3.40938568115E-5 相当于 3.40938568115 * 10 ^ -5
——解决方案——————–

探讨

其实我的意思是:
$time1和$time2都是类似于这样的数:1326693637.95
那他们相减也应该是两位的小数啊,为什么小数点后面出来那么多??


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:问一个FLOAT的有关问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址