How to round an NSDecimalNumber in swift?

前端 未结 3 757
予麋鹿
予麋鹿 2020-12-18 23:34

I can\'t find any resources on this, and I\'ve been trying all sorts of stuff, but nothing works.

According to Apple\'s documentation, you round an NSDecimalNumber l

3条回答
  •  忘掉有多难
    2020-12-19 00:00

    // get a decimal num from a string
    
    let num = NSDecimalNumber.init(string: numStr)
    
    // create an NSDecimalNumberHandler instance 
    
    let behaviour = NSDecimalNumberHandler(roundingMode:.RoundUp, 
    scale: 1, raiseOnExactness: false, 
    raiseOnOverflow: false, raiseOnUnderflow: 
    false, raiseOnDivideByZero: false)
    
    // pass the handler to the method decimalNumberByRoundingAccordingToBehaviour.
    
    // This is an instance method on NSDecimalNumber that takes an object that
    // conforms to the protocol NSDecimalNumberBehaviors, which NSDecimalNumberHandler does!
    
    let numRounded = num.decimalNumberByRoundingAccordingToBehavior(behaviour)
    

提交回复
热议问题