mathlib: fixed #2950: comparison of floating point values
This commit is contained in:
parent
a50f75ef86
commit
f441a958cd
|
@ -299,7 +299,9 @@ std::string MathLib::abs(const std::string &tok)
|
||||||
|
|
||||||
bool MathLib::isEqual(const std::string &first, const std::string &second)
|
bool MathLib::isEqual(const std::string &first, const std::string &second)
|
||||||
{
|
{
|
||||||
return toDoubleNumber(first) == toDoubleNumber(second);
|
// this conversion is needed for formating
|
||||||
|
// e.g. if first=0.1 and second=1.0E-1, the direct comparison of the strings whould fail
|
||||||
|
return toString<double>(toDoubleNumber(first)) == toString<double>(toDoubleNumber(second));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MathLib::isNotEqual(const std::string &first, const std::string &second)
|
bool MathLib::isNotEqual(const std::string &first, const std::string &second)
|
||||||
|
|
|
@ -44,7 +44,6 @@ private:
|
||||||
TEST_CASE(isLessEqual)
|
TEST_CASE(isLessEqual)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void isGreater()
|
void isGreater()
|
||||||
{
|
{
|
||||||
ASSERT_EQUALS(true , MathLib::isGreater("1.0", "0.001"));
|
ASSERT_EQUALS(true , MathLib::isGreater("1.0", "0.001"));
|
||||||
|
@ -63,6 +62,7 @@ private:
|
||||||
{
|
{
|
||||||
ASSERT_EQUALS(true , MathLib::isEqual("1.0", "1.0"));
|
ASSERT_EQUALS(true , MathLib::isEqual("1.0", "1.0"));
|
||||||
ASSERT_EQUALS(false , MathLib::isEqual("1.", "1.01"));
|
ASSERT_EQUALS(false , MathLib::isEqual("1.", "1.01"));
|
||||||
|
ASSERT_EQUALS(true , MathLib::isEqual("0.1","1.0E-1"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void isNotEqual()
|
void isNotEqual()
|
||||||
|
|
Loading…
Reference in New Issue