PHP浮点数精度输出很多位的问题,怎么解决?

比如有有个数是69.76,导出到excel之后就变成了69.760000000000001,这个有什么办法解决吗?

阅读 8.1k
6 个回答

将浮点数转换成字符即可,推荐使用sprintf函数

$num = 68.789000001;
$numStr = sprintf("%.2f", $num); 

保留两位小数

查下excel是否设置了单元格格式

number_format
或者 round
或者 导出 Excel 的时候如果用的是 PHPExcel ,可以设置格式。

转换成字符串处理,导出的时候变成字符串就可以了。

例如保留两位小数

$number = 69.760000000000001
number_format($number, 2);

如果涉及到计算的话,推荐使用bc函数

如果是单纯的导出浮点数的话推荐用@obdobriel 的方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题