长沙网站开发:在PHP中使用浮点值时的注意事项

善微科技 2019 03月12日 发布

到目前为止,我们已经看到了为什么在PHP中使用float值时会发生这种奇怪的行为。现在来看看我们如何在PHP中处理这些浮点值。

比较PHP中的浮点值

首先,我们将看到如何在比较浮点值的同时陷入浮动值的陷阱。我们将通过代码示例以更好的方式理解这一点。请参考下面的几个代码块来检查相同:




4
$ a 5.69 
$ b 5.69 
var_dump $ a == $ b 
//输出:bool(true)

在上面的代码块中,我们可以看到两个值都相同并给出了正确的结果。现在让我们检查PHP中比较float值的棘手部分。




4
$ a 5.63 0.06 
$ b 5.69 
 var_dump $ a == $ b 
//输出:bool(false)

在比较浮点值时,快速简单地解决此问题的方法是将其转换为字符串并比较这些值。现在它将比较两个字符串,它没有任何精度错误。




4
$ a 字符串 5.63 0.06 
$ b 字符串 5.69 
 var_dump $ a == $ b 
//输出:bool(true)

如果您认为(像我一样)转换为字符串会给我们一个正确的结果。但不是理想的解决方案,那么下一个解决方案就是为您服务。

要获得上述问题的解决方案,我们需要安装PHP的BCMath PHP扩展。您可以阅读本文,了解如何在PHP中安装PHP BCMath

完成BCMath扩展安装后,可以使用下面的代码并获得正确的结果。我们将使用bcadd方法而不是直接求和。




4
$一个 bcadd 5.63  0.06  
$ B bcadd 5.69   
 var_dump $ a == $ b 
//输出:bool(true)

让我们看看同一种情况的另一个例子:


善微科技作为长沙网站建设的优秀服务提供商,已经为上百家企事业单位提供了网站建设、网站制作、网站改版、微信/小程序开发、网站空间租用等服务,优质的服务得到了广大客户的一致认可,如果您有网站建设、网站制作、网站设计、微信开发、小程序开发等方面的需求,请致电:400-019-8939,我们会根据您所从事的行业领域和网站类型,在最短的时间内请我们的营销顾问与您预约后上门拜访您,直接面谈交流为您解答所有的网站建设疑问。

如没特殊注明,文章均为善微网络原创,转载请注明来自https://www.sanways.cn/news/478.html