float GetNumericValue(Utf8String[] parts) { if (parts[6].HasValue) { return(Utf8String.ParseInt(parts[6])); } if (parts[7].HasValue) { return(Utf8String.ParseInt(parts[7])); } if (parts[8].HasValue) { var p = parts[8].Split(new char[] { '/' }, 3); Console.WriteLine("float? value {0} in {1} parts", parts[8], p.Length); if (p.Length == 2) { Console.WriteLine("{0} / {1}", p[0], p[1]); Console.WriteLine("{0} / {1}", p[0].Trim(), p[1].Trim()); return(Utf8String.ParseInt(p[0].Trim()) * 1.0f / Utf8String.ParseInt(p[1].Trim())); } else { return(Utf8String.ParseInt(parts[8])); } } return(float.NaN); }
void WriteCodepoint(Utf8String codepoint) { if (!codepoint.HasValue) { WriteUint32(0); return; } WriteUint32((uint)Utf8String.ParseInt(codepoint, 16)); }