public void GetWholePartTest() { var val = new BigDecimal(10.01m); var res = new BigDecimal(10m); Assert.AreEqual(res, val.GetWholePart(), $"GetWholePart() does not work with value '{val}'."); }
/// <summary> /// Convert a decimal defaultDecimalStringToByteArray to a byte array. </summary> /// <param name="amountString"> it is a decimal string. e.g. "42.42" </param> /// <param name="precisionLevel"> the precision level, means 10 power 18 precision. </param> public static byte[] DecimalStringToByteArray(string amountString, int precisionLevel) { if (string.IsNullOrWhiteSpace(amountString)) { throw new ArgumentException("amount string is blank.", nameof(amountString)); } if (precisionLevel < 0) { throw new ArgumentException("precision level is less than 0", nameof(precisionLevel)); } BigDecimal amountDecimal = BigDecimal.Parse(amountString); BigDecimal precisionDecimal = BigDecimal.Pow(10, precisionLevel); BigDecimal realAmount = BigDecimal.Multiply(amountDecimal, precisionDecimal); return(TrimLeadingZeroes(realAmount.GetWholePart().ToByteArray())); }