diff --git a/BTCPayServer/Extensions/MoneyExtensions.cs b/BTCPayServer/Extensions/MoneyExtensions.cs index a764774b3..cba8ea1c7 100644 --- a/BTCPayServer/Extensions/MoneyExtensions.cs +++ b/BTCPayServer/Extensions/MoneyExtensions.cs @@ -33,10 +33,12 @@ namespace BTCPayServer public static decimal Convert(long sats, int divisibility = 8) { - var amt = sats.ToString(CultureInfo.InvariantCulture).PadLeft(divisibility, '0'); + var negative = sats < 0; + var amt = sats.ToString(CultureInfo.InvariantCulture) + .Replace("-", "") + .PadLeft(divisibility, '0'); amt = amt.Length == divisibility ? $"0.{amt}" : amt.Insert(amt.Length - divisibility, "."); - - return decimal.Parse(amt, CultureInfo.InvariantCulture); + return decimal.Parse($"{(negative? "-": string.Empty)}{amt}", CultureInfo.InvariantCulture); } public static string ShowMoney(this IMoney money, BTCPayNetwork network) {