Beispiel #1
0
        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}'.");
        }
Beispiel #2
0
        /// <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()));
        }