Swift-Tips之rounded(_:)

栏目: Swift · 发布时间: 7年前

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) // 4

let 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 对应

以上所述就是小编给大家介绍的《Swift-Tips之rounded(_:)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java核心技术·卷 I(原书第10版)

Java核心技术·卷 I(原书第10版)

[美] 凯.S.霍斯特曼(Cay S. Horstmann) / 周立新 等 / 机械工业出版社 / 2016-9 / CNY 119.00

Java领域最有影响力和价值的著作之一,由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。第10版根据Java SE 8全面更新,同时修正了第9版中的不足,系统全面讲解了Java语言的核 心概念、语法、重要特性和开发方法,包含大量案例,实践性强。 一直以来,《Java核心技术》都被认为是面向高级程序员的经典教......一起来看看 《Java核心技术·卷 I(原书第10版)》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具