Percent
Represents a percentage value.
using System;
namespace AngleSharp.Css.Values
{
public struct Percent : IEquatable<Percent>, IComparable<Percent>, IFormattable
{
public static readonly Percent Zero = new Percent(0);
public static readonly Percent Fifty = new Percent(50);
public static readonly Percent Hundred = new Percent(100);
private readonly float _value;
public float NormalizedValue => _value * 0.01;
public float Value => _value;
public Percent(float value)
{
_value = value;
}
public static explicit operator float(Percent number)
{
return number.NormalizedValue;
}
public static explicit operator int(Percent number)
{
return (int)number._value;
}
public static bool operator ==(Percent a, Percent b)
{
return a.Equals(b);
}
public static bool operator !=(Percent a, Percent b)
{
return !a.Equals(b);
}
public bool Equals(Percent other)
{
return _value == other._value;
}
public int CompareTo(Percent other)
{
return _value.CompareTo(other._value);
}
public override bool Equals(object obj)
{
if (obj is Percent)
return Equals((Percent)obj);
return false;
}
public override int GetHashCode()
{
return _value.GetHashCode();
}
public override string ToString()
{
return _value.ToString() + "%";
}
public string ToString(string format, IFormatProvider formatProvider)
{
return _value.ToString(format, formatProvider) + "%";
}
}
}