当我输出我的一些双变量时,它们是使用fwrite以指数形式编写的.我可以在PHP中设置一些默认值,无论何时显示(复制或存储)变量,它总是以十进制格式发生?
确切地说,当我在包含double值(不是指数形式)的json字符串上使用json_decode方法时会出现问题.转换对象后的双倍值变为指数.
解决方法:
假设数字在写入时仍然是浮点数(而不是字符串),这是一种方法:
echo rtrim(sprintf("%0.15f", $x), "0.");
我不确定是否有更清洁的方式.但基本上这使用sprintf打印最多15个小数位,然后删除任何尾随0或.字符. (当然,并不能保证一切都会像你期望的那样用尾随零完美地舍入.)