Beispiel #1
0
        public static BigNumber operator /(BigNumber c1, BigNumber c2)
        {
            BigNumber res = new BigNumber();

            if (maxDoubleBigNumber == 0)
            {
                maxDoubleBigNumber = BigNumber.Parse(double.MaxValue.ToString("F0", globalCultureInfo));
                minDoubleBigNumber = BigNumber.Parse(double.MinValue.ToString("F0", globalCultureInfo));
                maxFloatBigNumber  = BigNumber.Parse(float.MaxValue.ToString("F0", globalCultureInfo));
                minFloatBigNumber  = BigNumber.Parse(float.MinValue.ToString("F0", globalCultureInfo));
            }


            if (c2 <= maxFloatBigNumber && c2 >= minFloatBigNumber)
            {
                float cTemp = 0;
                float.TryParse(c2.ToFullString().Replace(',', '.'), NumberStyles.Any, CultureInfo.InvariantCulture, out cTemp);
                res = c1 / cTemp;
            }
            else if (c2 <= maxDoubleBigNumber && c2 >= minDoubleBigNumber)
            {
                double cTemp = 0;
                double.TryParse(c2.ToFullString().Replace(',', '.'), NumberStyles.Any, CultureInfo.InvariantCulture, out cTemp);
                res = c1 / cTemp;
            }
            else
            {
                BigNumber.Div(c1, c2, res);
            }
            return(res);
        }
Beispiel #2
0
        public static BigNumber operator /(BigNumber c1, double c2)
        {
            double c    = 1 / c2;
            string cStr = string.Format("{0:f99}", c).TrimEnd('0');

            if (cStr.EndsWith(","))
            {
                cStr = cStr.Remove(cStr.Length - 1);
            }
            BigNumber c3 = BigNumber.Parse(cStr);

            return(c1 * c3);
        }