public override string ToString()
{
if (System.Double.IsNaN(val)) return FanFloat.m_NaNStr;
if (val == System.Double.PositiveInfinity) return FanFloat.m_PosInfStr;
if (val == System.Double.NegativeInfinity) return FanFloat.m_NegInfStr;
string s = val.ToString();
if (s.IndexOf('.') == -1 && s.IndexOf("E") == -1) s += ".0"; // to match java behavior
return s;
}