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); }
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); }