#6514 Try to support hexadecimal floating numbers in MathLib::toDoubleNumber
This commit is contained in:
parent
52d042fd48
commit
a73decf7e4
|
@ -567,6 +567,8 @@ double MathLib::toDoubleNumber(const std::string &str)
|
|||
std::istringstream istr(str);
|
||||
istr.imbue(std::locale::classic());
|
||||
double ret;
|
||||
if (isFloatHex(str))
|
||||
istr >> std::hexfloat;
|
||||
istr >> ret;
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -370,6 +370,8 @@ private:
|
|||
ASSERT_EQUALS_DOUBLE(0.0, MathLib::toDoubleNumber("-0.0"), 0.000001);
|
||||
ASSERT_EQUALS_DOUBLE(0.0, MathLib::toDoubleNumber("+0.0"), 0.000001);
|
||||
ASSERT_EQUALS_DOUBLE('0', MathLib::toDoubleNumber("'0'"), 0.000001);
|
||||
ASSERT_EQUALS_DOUBLE(192, MathLib::toDoubleNumber("0x0.3p10"), 0.000001);
|
||||
ASSERT_EQUALS_DOUBLE(5.42101e-20, MathLib::toDoubleNumber("0x1p-64"), 1e-20);
|
||||
|
||||
// verify: string --> double --> string conversion
|
||||
ASSERT_EQUALS("1.0", MathLib::toString(MathLib::toDoubleNumber("1.0f")));
|
||||
|
|
Loading…
Reference in New Issue