• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iOS-SwiftNSNumber数字

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

前言

    public class NSNumber : NSValue
    public class NSDecimalNumber : NSNumber
  • NSNumber 可以被赋值为各种数值类型。我们可以将一个 Int 类型的值直接传递给一个需要 NSNumber 类型参数或变量,Swift 会自动转换,如果两者类型不一致,会强制类型转换。

  • 从 NSNumber 赋值给 Swift 数值类型是,数值类型会根据会更具声明类型将 NSNumber 强制转换。

1、Swift 数字类型 与 NSNumber 类型 的相互转换

    // Swift 数字 转 NSNumber
        
        let nsNum1:NSNumber = 1
            
        let nsNum2 = NSNumber(integer: 1)
        let nsNum3 = NSNumber(unsignedInteger: 1)
        let nsNum4 = NSNumber(float: 1.1)
        let nsNum5 = NSNumber(double: 3.2)
        let nsNum6 = NSNumber(bool: true)
            
    // NSNumber 转 Swift 数字
        
        let num1 = nsNum1.integerValue
        let num2 = nsNum2.unsignedIntegerValue
        let num3 = nsNum3.floatValue
        let num4 = nsNum4.doubleValue
        let num5 = nsNum5.boolValue

2、比较两个 NSNumber 类型数据的大小

    let nsNum1:NSNumber = 10
    let nsNum2:NSNumber = 10.1
        
    // 判断两个值是否相等
    let bl:Bool = nsNum1.isEqualToNumber(nsNum2)
    
    // 判断两个值的大小
    let result:NSComparisonResult = nsNum1.compare(nsNum2)

3、NSNumber 与 String 的相互转换

    // NSNumber 转换 NSString
    let str:String = NSNumber(float: 10.456).stringValue
        
    // NSString 转 NSNumber
    let nsNum:NSNumber = NSNumber(float: NSString(string: str).floatValue)

4、加、减、乘、除、n次方

    let dcNun1 = NSDecimalNumber(string:"15.99")
    let dcNun2 = NSDecimalNumber(string:"29.99")
    let dcNun3 = NSDecimalNumber(string:"5.00")
    let dcNun4 = NSDecimalNumber(string:".90")
    let dcNun5 = NSDecimalNumber(string:"2.0")
        
    // 加     Adding
    let subtotal = dcNun1.decimalNumberByAdding(dcNun2)                         
        
    // 减     Subtracting
    let afterCoupon = subtotal.decimalNumberBySubtracting(dcNun3)               
        
    // 乘     Multiplying
    let afterDiscount = afterCoupon.decimalNumberByMultiplyingBy(dcNun4)        
        
    // 平均   Dividing
    let average = afterDiscount.decimalNumberByDividingBy(dcNun5)               
        
    // n 次方 RaisingToPower
    let averageSquared = average.decimalNumberByRaisingToPower(2)               

5、四舍五入 运算

    /*
        enum NSRoundingMode : UInt {
        
            case RoundPlain     // Round up on a tie  貌似取整
            case RoundDown      // Always down == truncate  只舍不入
            case RoundUp        // Always up  只入不舍
            case RoundBankers   // on a tie round so last digit is even  貌似四舍五入
        }
    */
        
    // 90.7049 + 0.22 然后四舍五入
        
    let roundUp = NSDecimalNumberHandler(roundingMode: NSRoundingMode.RoundBankers, 
                                                scale: 2, 
                                     raiseOnExactness: false, 
                                      raiseOnOverflow: false, 
                                     raiseOnUnderflow: false, 
                                  raiseOnDivideByZero: true)
        
    let subtotal = NSDecimalNumber(string:"90.7049")
    let discount = NSDecimalNumber(string:"0.22")
        
    // 加 保留 2 位小数
    let total = subtotal.decimalNumberByAdding(discount, withBehavior: roundUp)

 

前言

    public class NSNumber : NSValue
    public class NSDecimalNumber : NSNumber
  • NSNumber 可以被赋值为各种数值类型。我们可以将一个 Int 类型的值直接传递给一个需要 NSNumber 类型参数或变量,Swift 会自动转换,如果两者类型不一致,会强制类型转换。

  • 从 NSNumber 赋值给 Swift 数值类型是,数值类型会根据会更具声明类型将 NSNumber 强制转换。

1、Swift 数字类型 与 NSNumber 类型 的相互转换

    // Swift 数字 转 NSNumber
        
        let nsNum1:NSNumber = 1
            
        let nsNum2 = NSNumber(integer: 1)
        let nsNum3 = NSNumber(unsignedInteger: 1)
        let nsNum4 = NSNumber(float: 1.1)
        let nsNum5 = NSNumber(double: 3.2)
        let nsNum6 = NSNumber(bool: true)
            
    // NSNumber 转 Swift 数字
        
        let num1 = nsNum1.integerValue
        let num2 = nsNum2.unsignedIntegerValue
        let num3 = nsNum3.floatValue
        let num4 = nsNum4.doubleValue
        let num5 = nsNum5.boolValue

2、比较两个 NSNumber 类型数据的大小

    let nsNum1:NSNumber = 10
    let nsNum2:NSNumber = 10.1
        
    // 判断两个值是否相等
    let bl:Bool = nsNum1.isEqualToNumber(nsNum2)
    
    // 判断两个值的大小
    let result:NSComparisonResult = nsNum1.compare(nsNum2)

3、NSNumber 与 String 的相互转换

    // NSNumber 转换 NSString
    let str:String = NSNumber(float: 10.456).stringValue
        
    // NSString 转 NSNumber
    let nsNum:NSNumber = NSNumber(float: NSString(string: str).floatValue)

4、加、减、乘、除、n次方

    let dcNun1 = NSDecimalNumber(string:"15.99")
    let dcNun2 = NSDecimalNumber(string:"29.99")
    let dcNun3 = NSDecimalNumber(string:"5.00")
    let dcNun4 = NSDecimalNumber(string:".90")
    let dcNun5 = NSDecimalNumber(string:"2.0")
        
    // 加     Adding
    let subtotal = dcNun1.decimalNumberByAdding(dcNun2)                         
        
    // 减     Subtracting
    let afterCoupon = subtotal.decimalNumberBySubtracting(dcNun3)               
        
    // 乘     Multiplying
    let afterDiscount = afterCoupon.decimalNumberByMultiplyingBy(dcNun4)        
        
    // 平均   Dividing
    let average = afterDiscount.decimalNumberByDividingBy(dcNun5)               
        
    // n 次方 RaisingToPower
    let averageSquared = average.decimalNumberByRaisingToPower(2)               

5、四舍五入 运算

    /*
        enum NSRoundingMode : UInt {
        
            case RoundPlain     // Round up on a tie  貌似取整
            case RoundDown      // Always down == truncate  只舍不入
            case RoundUp        // Always up  只入不舍
            case RoundBankers   // on a tie round so last digit is even  貌似四舍五入
        }
    */
        
    // 90.7049 + 0.22 然后四舍五入
        
    let roundUp = NSDecimalNumberHandler(roundingMode: NSRoundingMode.RoundBankers, 
                                                scale: 2, 
                                     raiseOnExactness: false, 
                                      raiseOnOverflow: false, 
                                     raiseOnUnderflow: false, 
                                  raiseOnDivideByZero: true)
        
    let subtotal = NSDecimalNumber(string:"90.7049")
    let discount = NSDecimalNumber(string:"0.22")
        
    // 加 保留 2 位小数
    let total = subtotal.decimalNumberByAdding(discount, withBehavior: roundUp)

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift计算三角形角度、两条边夹角发布时间:2022-07-13
下一篇:
swift 日历的制作发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap