add Percent % to Units

This commit is contained in:
ig 2023-03-01 08:14:08 +01:00
parent f1003c2877
commit 9bf23f3ec8
1 changed files with 29 additions and 0 deletions

View File

@ -0,0 +1,29 @@
namespace InnovEnergy.Lib.Units;
using T = Percent;
public readonly struct Percent
{
public static String Unit => "%";
public static String Symbol => "%"; // ??
public Percent(Decimal value)
{
if (value < 0)
throw new ArgumentException(nameof(Frequency) + " cannot be negative", nameof(value));
Value = value;
}
// not generated
public Decimal Value { get; }
public override String ToString() => Value + Unit;
// scalar multiplication
public static Decimal operator *(Decimal scalar, T t) => scalar * t.Value/100m;
public static Decimal operator *(T t, Decimal scalar) => scalar * t.Value/100m;
// parallel
public static Percent operator |(T left, T right) => new T((left.Value + right.Value)/2m);
}