static public float ToSingle(byte[] buffer, int offset, int count) { float value; if (TryParseSingle(buffer, offset, count, out value)) return value; return ToSingle(ToString(buffer, offset, count)); }
public float ToSingle() { switch (this.type) { case ValueHandleType.Single: return(this.GetSingle()); case ValueHandleType.Double: { double d = this.GetDouble(); if (((d >= -3.4028234663852886E+38) && (d <= 3.4028234663852886E+38)) || (double.IsInfinity(d) || double.IsNaN(d))) { return((float)d); } break; } case ValueHandleType.Zero: return(0f); case ValueHandleType.One: return(1f); case ValueHandleType.Int8: return((float)this.GetInt8()); case ValueHandleType.Int16: return((float)this.GetInt16()); case ValueHandleType.UTF8: return(XmlConverter.ToSingle(this.bufferReader.Buffer, this.offset, this.length)); } return(XmlConverter.ToSingle(this.GetString())); }