1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <iostream> #include <cmath> #include <limits> bool AreDoubleSame(double dFirstVal, double dSecondVal) { return std::abs(dFirstVal - dSecondVal) < std::numeric_limits<double>::epsilon(); } int main() { double dFirstDouble = 0.200001; double dSecondDouble = 20000.1 / 100000.0; std::cout << "AreDoubleSame: "; if(AreDoubleSame(dFirstDouble , dSecondDouble) ) { std::cout << "equal " << std::endl; } else { std::cout << "not equal" << std::endl; } std::cout << "==: "; if(dFirstDouble == dSecondDouble) { std::cout << "equal " << std::endl; } else { std::cout << "not equal" << std::endl; } } |
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxsaW1pdHM+IAoKYm9vbCBBcmVEb3VibGVTYW1lKGRvdWJsZSBkRmlyc3RWYWwsIGRvdWJsZSBkU2Vjb25kVmFsKQp7CiAgICByZXR1cm4gc3RkOjphYnMoZEZpcnN0VmFsIC0gZFNlY29uZFZhbCkgPCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmVwc2lsb24oKTsKfQoKCmludCBtYWluKCkKewogIGRvdWJsZSBkRmlyc3REb3VibGUgPSAwLjIwMDAwMTsKICBkb3VibGUgZFNlY29uZERvdWJsZSA9IDIwMDAwLjEgLyAxMDAwMDAuMDsKCiAgc3RkOjpjb3V0IDw8ICJBcmVEb3VibGVTYW1lOiAiOwogIGlmKEFyZURvdWJsZVNhbWUoZEZpcnN0RG91YmxlICwgZFNlY29uZERvdWJsZSkgKQogIHsKICAgIHN0ZDo6Y291dCA8PCAiZXF1YWwgIiA8PCBzdGQ6OmVuZGw7CiAgfSBlbHNlIHsKICAgIHN0ZDo6Y291dCA8PCAibm90IGVxdWFsIiA8PCBzdGQ6OmVuZGw7CiAgfQogIHN0ZDo6Y291dCA8PCAiPT06ICI7CiAgaWYoZEZpcnN0RG91YmxlID09IGRTZWNvbmREb3VibGUpCiAgewogICAgc3RkOjpjb3V0IDw8ICJlcXVhbCAiIDw8IHN0ZDo6ZW5kbDsKICB9IGVsc2UgewogICAgc3RkOjpjb3V0IDw8ICJub3QgZXF1YWwiIDw8IHN0ZDo6ZW5kbDsKICB9Cn0=
-
upload with new input
-
result: Success time: 0.01s memory: 2724 kB returned value: 0
AreDoubleSame: equal ==: not equal


