     }
     fileprivate mutating func round(scale:Int, roundingMode:RoundingMode) {
         // scale is the number of digits after the decimal point
-        var s = scale + _exponent
+        var s = Int32(scale) + _exponent
         if s == NSDecimalNoScale || s >= 0 {
             return
         }

     * accurate result later. I chose 19 arbitrarily
     * as half of the magic 38, so that normalization
     * doesn't always occur. */
    if (19 <= a._exponent - b._exponent) {
        _ = NSDecimalNormalize(&a, &b, roundingMode);
        /* We ignore the small loss of precision this may
         * induce in the individual operands. */

    //
    // Divide bb by this value
    //
    _ = integerMultiplyByPowerOf10(&result, bb.pointee, Int(maxpow10 - diffexp))

    bb.pointee.copyMantissa(from: result)
    bb.pointee._exponent -= Int32(maxpow10 - diffexp);

    //
    // If bb > 0 multiply aa by the same value
