Merge pull request #1977 from teejusb/5_1-new

Fix float parsing errors
This commit is contained in:
quietly-turning
2020-04-10 15:23:09 -04:00
committed by GitHub
+7 -14
View File
@@ -1877,27 +1877,20 @@ void MakeLower( wchar_t *p, size_t iLen )
float StringToFloat( const RString &sString ) float StringToFloat( const RString &sString )
{ {
RString toTrim = sString; float fOut = std::strtof(sString, nullptr);
Trim(toTrim); if (!isfinite(fOut))
if (toTrim.size() == 0)
{ {
return 0; fOut = 0.0f;
} }
return std::stof(toTrim); return fOut;
} }
bool StringToFloat( const RString &sString, float &fOut ) bool StringToFloat( const RString &sString, float &fOut )
{ {
RString toTrim = sString; char *endPtr = nullptr;
Trim(toTrim);
if (toTrim.size() == 0)
{
return false;
}
char *endPtr;
fOut = strtof( toTrim, &endPtr ); fOut = std::strtof(sString, &endPtr);
return *endPtr == '\0' && isfinite( fOut ); return sString.size() && *endPtr == '\0' && isfinite(fOut);
} }
RString FloatToString( const float &num ) RString FloatToString( const float &num )