AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.8.4" />

 CssNumberToken

sealed class CssNumberToken : CssToken
Represents a CSS number token.
using AngleSharp.Css.Values; using System.Globalization; namespace AngleSharp.Parser.Css { internal sealed class CssNumberToken : CssToken { private static readonly char[] floatIndicators = new char[3] { '.', 'e', 'E' }; public bool IsInteger => base.Data.IndexOfAny(floatIndicators) == -1; public int IntegerValue => int.Parse(base.Data, CultureInfo.InvariantCulture); public float Value => float.Parse(base.Data, CultureInfo.InvariantCulture); public CssNumberToken(string number, TextPosition position) : base(CssTokenType.Number, number, position) { } public Number ToNumber() { float value = Value; if (value == 0) return Number.Zero; Number.Unit unit = (!IsInteger) ? Number.Unit.Float : Number.Unit.Integer; return new Number(value, unit); } public override string ToValue() { if (base.Data[0] != '.') return base.Data; return "0" + base.Data; } } }