rounded(_:)

使用指定的舍入规则将该值取整。

代码示例

let nums = [3.0, 3.001, 3.5, 3.999, -3.0, -3.001, -3.5, -3.999]
let rules = [FloatingPointRoundingRule.awayFromZero, .down, .toNearestOrAwayFromZero, .toNearestOrEven, .towardZero, .up]for rule in rules {print("========\(rule)========")for num in nums {let value = num.rounded(rule)print("Rule: \(rule), Source: \(num), Value: \(value)")}
}/*
========awayFromZero========
Source: 3.0, Value: 3.0
Source: 3.001, Value: 4.0
Source: 3.5, Value: 4.0
Source: 3.999, Value: 4.0
Source: -3.0, Value: -3.0
Source: -3.001, Value: -4.0
Source: -3.5, Value: -4.0
Source: -3.999, Value: -4.0
========down========
Source: 3.0, Value: 3.0
Source: 3.001, Value: 3.0
Source: 3.5, Value: 3.0
Source: 3.999, Value: 3.0
Source: -3.0, Value: -3.0
Source: -3.001, Value: -4.0
Source: -3.5, Value: -4.0
Source: -3.999, Value: -4.0
========toNearestOrAwayFromZero========
Source: 3.0, Value: 3.0
Source: 3.001, Value: 3.0
Source: 3.5, Value: 4.0
Source: 3.999, Value: 4.0
Source: -3.0, Value: -3.0
Source: -3.001, Value: -3.0
Source: -3.5, Value: -4.0
Source: -3.999, Value: -4.0
========toNearestOrEven========
Source: 3.0, Value: 3.0
Source: 3.001, Value: 3.0
Source: 3.5, Value: 4.0
Source: 3.999, Value: 4.0
Source: -3.0, Value: -3.0
Source: -3.001, Value: -3.0
Source: -3.5, Value: -4.0
Source: -3.999, Value: -4.0
========towardZero========
Source: 3.0, Value: 3.0
Source: 3.001, Value: 3.0
Source: 3.5, Value: 3.0
Source: 3.999, Value: 3.0
Source: -3.0, Value: -3.0
Source: -3.001, Value: -3.0
Source: -3.5, Value: -3.0
Source: -3.999, Value: -3.0
========up========
Source: 3.0, Value: 3.0
Source: 3.001, Value: 4.0
Source: 3.5, Value: 4.0
Source: 3.999, Value: 4.0
Source: -3.0, Value: -3.0
Source: -3.001, Value: -3.0
Source: -3.5, Value: -3.0
Source: -3.999, Value: -3.0*/
复制代码

总结

  • awayFromZero: 四舍五入到最接近的值,返回值大于或等于源的大小(该规则比较的是绝对值)
let num = 3.5
num.rounded(.awayFromZero) // 4let num2 = -3.5
num2.rounded(.awayFromZero) //-4
//可以看出 -4是小于-3.5的,所以它的规则说返回值大于或等于源指的是两值的绝对值的比较
复制代码
  • down: 四舍五入到最接近的值,返回值小于于或等于源的大小(改规则不是比较的绝对值)
  • toNearestOrAwayFromZero: 四舍五入到最接近的值;如果两个值相等接近,则选择幅度较大的值
  • toNearestOrEven:四舍五入到最接近的值;如果两个值相等接近,则选择偶数。
let num = 3.5
// 这是3与4同等接近,选择偶数4
num.rounded(.toNearestOrEven)  // 4
let num2 = 4.5
// 这是4与5同等接近,选择偶数4
num2.rounded(.toNearestOrEven)  // 4
复制代码
  • towardZero: 四舍五入到最接近的值,返回值小于于或等于源的大小;通过上面的例子可以看出它是忽略负号的;与awayFromZero对应
  • up: 四舍五入到最接近的值,返回值大于或等于源的大小;不忽略负号;与up对应

My Github

Swift-Tips之rounded(_:)相关推荐

  1. Swift tips 笔记

    Swift tips 笔记 CaseIterable协议 enum遵守了CaseIterable协议可以实现遍历枚举值 enum Season : CaseIterable {case spring, ...

  2. Swift tips 017 - Speeding up Swift package tests

    代码截图 代码出处: Swift Tips 017 by John Sundell[1] 小笔记 这段代码在说什么 Swift Package Manager(Swift 包管理器,一般简称 Swif ...

  3. swift通知栏推送_如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用

    swift通知栏推送 by Neo Ighodaro 由新Ighodaro 如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用 (How to create an iOS crypt ...

  4. swift自行车品牌介绍_品牌101:简介

    swift自行车品牌介绍 Sometimes when I'm around designer friends and there's a lull in the conversation one o ...

  5. swift通知栏推送_如何使用Swift使用推送通知构建食品交付应用

    swift通知栏推送 by Neo Ighodaro 由新Ighodaro 如何使用Swift使用推送通知构建食品交付应用 (How to build a food delivery app with ...

  6. swift 引用其他类_浅谈swift中闭包修饰符 weak?unowned? 或什么都不用

    浅谈swift中闭包修饰符 weak?unowned? 或什么都不用 平常的开发中,clourse是我们iOSr绕不过去的坎儿. 苹果本身也很重视闭包,像之前的一些老的target-action类型的 ...

  7. 关于Swift中的forEach(_:)和for-in loop

    本文基于Swift5,阅读时间大约需要10min. 简介 Swift摒弃了C语言式定义变量.累加变量的for-loop,用for-in取而代之,来遍历集合类型. 那什么是forEach(_:)呢?fo ...

  8. Swift Tips(18-32)

    18. 软键盘添加 Done button extension UITextField { func addDoneToolbar(onDone: (target: Any, action: Sele ...

  9. swift 自定义滑动视图_在Swift中创建一个向上滑动菜单视图(以编程方式)

    swift 自定义滑动视图 This is a quick tutorial on how to create a slide-up menu view in iOS 这是有关如何在iOS中创建向上滑 ...

最新文章

  1. Caffe源码中blob文件分析
  2. Android Handler 深入学习(1)
  3. (转载)如何学好iphone游戏开发
  4. Angular下通过命令创建组件至指定文件夹下
  5. 甘肃省计算机等级考试在线支付,甘肃计算机等级考试入口
  6. python操作hbase配置记录-基于thrift2协议
  7. 【Android面试】Android面试题集锦 (陆续更新)
  8. @Transactional和@Async 使用场景
  9. python监控桌面捕捉_想要远程获取对方的桌面?Python教你一招搞定!
  10. 消息称苹果将推iPhone 12s取代XR 仅支持4G网络
  11. 三、Java基础工具(1)_常用类——数学相关类
  12. easyUI跨Tab操作datagrid
  13. 【剑指Offer】15顺时针打印矩阵
  14. 好奇怪呀后面加什么标点_好奇怪,为什么开发商就不能把这款好户型打造得更完美些呢?...
  15. java中substring与substr的用法
  16. ki4so-发起一个史上最开源的sso项目
  17. MySQL如何执行关联查询
  18. cwe_checker初识别
  19. 联想微型计算机设置从u盘启动,联想台式机设置从u盘启动图文教程
  20. html电话号码隐藏样式,打电话不显示号码怎么设置(教你打电话隐藏号码)

热门文章

  1. Unity3D 的LookAt() 与 LookRotation()方法的比较
  2. [OpenGL] 视图矩阵(View)矩阵与glm::lookAt函数源码解析
  3. 怎样在小方框上打对号 小方框内打对勾 word 方框打对勾
  4. 动画效果编程基础详解--Animation Android
  5. android通知栏的点击事件,android自定义通知栏以及点击事件
  6. MEC@JavaSE@实战篇@笔记05@计算机网络技术基础
  7. 如何评判一个企业是否需要实施erp系统?
  8. 2022年电工(初级)操作证考试题库及模拟考试
  9. WPF遍历视觉树与逻辑树
  10. ink css,ink - 在线工具 - 前端之家