MCPcopy Create free account
hub / github.com/MyGUI/mygui / convert_number_to_string_special

Function convert_number_to_string_special

Tools/EditorFramework/pugixml.cpp:6936–6967  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6934}
6935
6936PUGI__FN const char_t* convert_number_to_string_special(double value)
6937{
6938 #if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__)
6939 if (_finite(value))
6940 return (value == 0) ? PUGIXML_TEXT("0") : 0;
6941 if (_isnan(value))
6942 return PUGIXML_TEXT("NaN");
6943 return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity");
6944 #elif defined(fpclassify) && defined(FP_NAN) && defined(FP_INFINITE) && defined(FP_ZERO)
6945 switch (fpclassify(value))
6946 {
6947 case FP_NAN: return PUGIXML_TEXT("NaN");
6948
6949 case FP_INFINITE: return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity");
6950
6951 case FP_ZERO: return PUGIXML_TEXT("0");
6952
6953 default: return 0;
6954 }
6955 #else
6956 // fallback
6957 const volatile double v = value;
6958
6959 if (v == 0)
6960 return PUGIXML_TEXT("0");
6961 if (v != v)
6962 return PUGIXML_TEXT("NaN");
6963 if (v * 2 == v)
6964 return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity");
6965 return 0;
6966 #endif
6967}
6968
6969PUGI__FN bool convert_number_to_boolean(double value)
6970{

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected