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 bool operator >=(Percent a, Percent b)
{
return a._value >= b._value;
}
public static bool operator >(Percent a, Percent b)
{
return a._value > b._value;
}
public static bool operator <=(Percent a, Percent b)
{
return a._value <= b._value;
}
public static bool operator <(Percent a, Percent b)
{
return a._value < b._value;
}
public int CompareTo(Percent other)
{
return _value.CompareTo(other._value);
}
public bool Equals(Percent other)
{
return _value == other._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 override bool Equals(object obj)
{
Percent? nullable = obj as Percent?;
if (nullable.HasValue)
return Equals(nullable.Value);
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) + "%";
}
}
}