比较PHP中的小数

Mam*_*dou 0 php

我有一个表单输入来获取一个数字(这是一个价格).它可以是像小数字102,5.我必须将它与例如102,6的其他小数进行比较.怎么办呢?我不想使用round()因为我可以完全比较.

jen*_*ram 9

您可以将绝对(即数值)差异与"epsilon"(您的"容差" 1)进行比较:

$epsilon = 0.01;
$diff = abs(102.5 - 102.6); // .1
if ($diff <= $epsilon) {
    // The numbers are equal
} else {
    // The numbers are not equal enough!
}
Run Code Online (Sandbox Code Playgroud)

并且,一点点阅读:" 每个计算机科学家应该知道的浮点运算 "和" 比较浮点数 ".

此外,您可能会发现以下SO问题(和答案!)有趣:


1那是对的:可以决定是什么让这两个数字相等.它可以0.1(1.1等于1.0),0.01(1.021.03)等.