注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Bioinformatics home

 
 
 

日志

 
 

在PHP中,当格式化输出浮点数时遇到的问题(转)  

2010-10-18 22:05:30|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
现整理出以下测试代码供大家讨论.
<?php

//函数   number_format()   的测试
echo   number_format(0.885,2, '. ', ' '). " <br   /> ";               //   0.88           ???   error!
echo   number_format(0.895,2, '. ', ' '). " <br   /> ";               //   0.89           ???   error!
echo   number_format(0.985,2, '. ', ' '). " <br   /> ";               //   0.98           ???   error!
echo   number_format(0.995,2, '. ', ' '). " <br   /> ";               //   0.99           ???   error!
echo   number_format(0.885001,2, '. ', ' '). " <br   /> ";         //   0.89           ok!
echo   number_format(0.895001,2, '. ', ' '). " <br   /> ";         //   0.90           ok!
echo   number_format(0.985001,2, '. ', ' '). " <br   /> ";         //   0.99           ok!
echo   number_format(0.995001,2, '. ', ' '). " <br   /> ";         //   1.00           ok!
echo   number_format(0.9885,3, '. ', ' '). " <br   /> ";             //   0.988         ???   error!
echo   number_format(0.9895,3, '. ', ' '). " <br   /> ";             //   0.989         ???   error!
echo   number_format(0.988501,3, '. ', ' '). " <br   /> ";         //   0.989         ok!
echo   number_format(0.989501,3, '. ', ' '). " <br   /> ";         //   0.990         ok!
echo   number_format(0.99895,4, '. ', ' '). " <br   /> ";           //   0.9989       ???   error!
echo   number_format(0.99985,4, '. ', ' '). " <br   /> ";           //   0.9998       ???   error!
echo   number_format(0.99995,4, '. ', ' '). " <br   /> ";           //   0.9999       ???   error!
echo   number_format(0.9989501,4, '. ', ' '). " <br   /> ";       //   0.9990       ok!
echo   number_format(0.9998501,4, '. ', ' '). " <br   /> ";       //   0.9999       ok!
echo   number_format(0.9999501,4, '. ', ' '). " <br   /> ";       //   1.0000       ok!
echo   number_format(0.9999885,6, '. ', ' '). " <br   /> ";       //   0.999988   ???   error!
echo   number_format(0.999988501,6, '. ', ' '). " <br   /> ";   //   0.999989   ok!

//函数   sprintf()   的测试(与用函数   number_format()   的测试结果相同)
echo   sprintf( "%01.2f ",0.885). " <br   /> ";                           //   0.88           ???   error!
echo   sprintf( "%01.2f ",0.895). " <br   /> ";                           //   0.89           ???   error!
echo   sprintf( "%01.2f ",0.985). " <br   /> ";                           //   0.98           ???   error!
echo   sprintf( "%01.2f ",0.995). " <br   /> ";                           //   0.99           ???   error!
echo   sprintf( "%01.2f ",0.885001). " <br   /> ";                     //   0.89           ok!
echo   sprintf( "%01.2f ",0.895001). " <br   /> ";                     //   0.90           ok!
echo   sprintf( "%01.2f ",0.985001). " <br   /> ";                     //   0.99           ok!
echo   sprintf( "%01.2f ",0.995001). " <br   /> ";                     //   1.00           ok!
echo   sprintf( "%01.3f ",0.9885). " <br   /> ";                         //   0.988         ???   error!
echo   sprintf( "%01.3f ",0.9895). " <br   /> ";                         //   0.989         ???   error!
echo   sprintf( "%01.3f ",0.988501). " <br   /> ";                     //   0.989         ok!
echo   sprintf( "%01.3f ",0.989501). " <br   /> ";                     //   0.990         ok!
echo   sprintf( "%01.4f ",0.99895). " <br   /> ";                       //   0.9989       ???   error!
echo   sprintf( "%01.4f ",0.99985). " <br   /> ";                       //   0.9998       ???   error!
echo   sprintf( "%01.4f ",0.99995). " <br   /> ";                       //   0.9999       ???   error!
echo   sprintf( "%01.4f ",0.9989501). " <br   /> ";                   //   0.9990       ok!
echo   sprintf( "%01.4f ",0.9998501). " <br   /> ";                   //   0.9999       ok!
echo   sprintf( "%01.4f ",0.9999501). " <br   /> ";                   //   1.0000       ok!
echo   sprintf( "%01.6f ",0.9999885). " <br   /> ";                   //   0.999988   ???   error!
echo   sprintf( "%01.6f ",0.999988501). " <br   /> ";               //   0.999989   ok!
?>
  评论这张
 
阅读(1294)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017