btcpayserver/BTCPayServer.Rating/Extensions.cs

30 lines
849 B
C#
Raw Normal View History

using System;
namespace BTCPayServer.Rating
{
public static class Extensions
{
2020-06-24 10:34:09 +09:00
public static decimal RoundToSignificant(this decimal value, int divisibility)
{
return RoundToSignificant(value, ref divisibility);
}
public static decimal RoundToSignificant(this decimal value, ref int divisibility)
{
if (value != 0m)
{
while (true)
{
var rounded = decimal.Round(value, divisibility, MidpointRounding.AwayFromZero);
if ((Math.Abs(rounded - value) / value) < 0.001m)
{
value = rounded;
break;
}
divisibility++;
}
}
return value;
}
}
}