public static bool TryParseNumberOrPercentage(string numberOrPercentageText, out float result) { var ptr = new StringPtr(numberOrPercentageText); ptr.AdvanceNumber(); var percentage = false; if (!ptr.IsEnd && ptr.Char == '%') { percentage = true; ++ptr; } if (ptr.Index != numberOrPercentageText.Length) { result = 0.0F; return(false); } if (percentage) { numberOrPercentageText = numberOrPercentageText.Substring(0, numberOrPercentageText.Length - 1); } result = float.Parse(numberOrPercentageText, System.Globalization.CultureInfo.InvariantCulture); if (percentage) { result /= 100.0F; } return(true); }
internal static bool TryParse(string numberText, float min, float max, out SvgNumber result) { var ptr = new StringPtr(numberText); ptr.AdvanceNumber(); if (ptr.Index != numberText.Length) { result = 0.0F; return false; } result = Math.Min(Math.Max(float.Parse(numberText), min), max); return true; }
internal static bool TryParse(string numberText, out SvgNumber result) { var ptr = new StringPtr(numberText); ptr.AdvanceNumber(); if (ptr.Index != numberText.Length) { result = 0.0F; return false; } result = float.Parse(numberText, System.Globalization.CultureInfo.InvariantCulture); return true; }
private float?ParseNumber(StringPtr ptr) { var begin = ptr.Index; ptr.AdvanceNumber(); if (begin == ptr.Index) { return(null); } var numberText = ptr.Target.Substring(begin, ptr.Index - begin); return(float.Parse(numberText, System.Globalization.CultureInfo.InvariantCulture)); }
public static bool TryParseNumberOrPercentage(string numberOrPercentageText, out float result) { var ptr = new StringPtr(numberOrPercentageText); ptr.AdvanceNumber(); var percentage = false; if (!ptr.IsEnd && ptr.Char == '%') { percentage = true; ++ptr; } if (ptr.Index != numberOrPercentageText.Length) { result = 0.0F; return false; } if (percentage) numberOrPercentageText = numberOrPercentageText.Substring(0, numberOrPercentageText.Length - 1); result = float.Parse(numberOrPercentageText, System.Globalization.CultureInfo.InvariantCulture); if (percentage) result /= 100.0F; return true; }
private float? ParseNumber(StringPtr ptr) { var begin = ptr.Index; ptr.AdvanceNumber(); if (begin == ptr.Index) return null; var numberText = ptr.Target.Substring(begin, ptr.Index - begin); return float.Parse(numberText, System.Globalization.CultureInfo.InvariantCulture); }