diff --git a/Sources/Euler/BigNumber/BigDouble/OperationsBigDouble.swift b/Sources/Euler/BigNumber/BigDouble/OperationsBigDouble.swift index 7f6f44e..3b29c35 100644 --- a/Sources/Euler/BigNumber/BigDouble/OperationsBigDouble.swift +++ b/Sources/Euler/BigNumber/BigDouble/OperationsBigDouble.swift @@ -227,14 +227,14 @@ extension BigDouble { // /// Quick division (using defined precision by default for better performances) public static func /(lhs: BigDouble, rhs: BigDouble) -> BigDouble { - let double_precision = BN.precision * 10 // While we limit the precision, we need something fine... + let double_precision = BN.precision + 10 // While we limit the precision, we need something fine... var denominator = lhs.denominator.multiplyingBy(rhs.numerator) var numerator = lhs.numerator.multiplyingBy(rhs.denominator) let precision = (BigInt(10) ** double_precision).limbs - if !denominator.lessThan(precision) { - denominator = denominator.dividing(precision) - numerator = numerator.dividing(precision) + while !denominator.lessThan(precision) { + denominator = denominator.dividing([10]) + numerator = numerator.dividing([10]) } var res = BigDouble( sign: lhs.sign != rhs.sign,