使Int四舍五入到最接近的值

拉普·斯特加恩

我有两个Int值(它们必须是Ints),我希望它们在方程式中四舍五入到最接近的值;

var Example = Int()
var secondExample = Int()

Example = (secondExample / 7000)

该方程使变量Example始终向下舍入到最小值。举例来说,数字如下:

var Example = Int()
var secondExample : Int = 20000

Example = (20000 / 7000)

20000/7000等于2.857 ...但是变量Example显示2

如何Example不将其更改为Double的情况下四舍五入到最接近的数字

马丁·R

对于非负整数,以下函数以纯整数算术给出所需的结果:

func divideAndRound(numerator: Int, _ denominator: Int) -> Int {
    return (2 * numerator + denominator)/(2 * denominator)
}

例子:

print(20000.0/7000.0) // 2.85714285714286
print(divideAndRound(20000, 7000)) // 3 (rounded up)

print(10000.0/7000.0) // 1.42857142857143
print(divideAndRound(10000, 7000)) // 1 (rounded down)

这个想法是

 a   1   2 * a + b
 - + - = ---------
 b   2     2 * b

这是任意签名的整数的一种可能实现,该整数也不会溢出:

func divideAndRound(num: Int, _ den: Int) -> Int {
    return num / den + (num % den) / (den / 2 + den % 2)
}

(基于@ user3441734的更新解决方案,因此我们现在在回答之间有一个参考周期:)

还有一个ldiv函数可以计算商和除法余数,因此最后一个函数也可以实现为

func divideAndRound(num: Int, _ den: Int) -> Int {
    let div = ldiv(num, den)
    let div2 = ldiv(den, 2)
    return div.quot + div.rem / (div2.quot + div2.rem)
}

(我没有测试哪个版本更快。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

四舍五入到最接近的N号

来自分类Dev

四舍五入到最接近的n小时

来自分类Dev

四舍五入到最接近的整数

来自分类Dev

四舍五入到最接近的10000 Javascript

来自分类Dev

四舍五入到最接近的5

来自分类Dev

四舍五入到最接近的可用分数

来自分类Dev

iOS:四舍五入到最接近的数字

来自分类Dev

如何四舍五入到最接近的50?

来自分类Dev

四舍五入到最接近的数字

来自分类Dev

四舍五入到最接近的整数

来自分类Dev

Javascript四舍五入到最接近的整数

来自分类Dev

MATLAB 四舍五入到最接近的整数

来自分类Dev

如何将wordpress中的价格四舍五入到最接近的值?

来自分类Dev

将日期时间值四舍五入到最接近的半小时

来自分类Dev

四舍五入到给定值的最接近倍数

来自分类Dev

将字典中的值四舍五入到python中最接近的5吗?

来自分类Dev

将值四舍五入到最接近的小时数

来自分类Dev

在MySQL查询中将值四舍五入到最接近的2的幂

来自分类Dev

将MySQL中的DATETIME值四舍五入到最接近的分钟

来自分类Dev

将值四舍五入到最接近的50

来自分类Dev

如何将excel中的数字四舍五入到最接近的实际值

来自分类Dev

如何将十进制值四舍五入到最接近的整数?

来自分类Dev

PHP 计算中四舍五入到最接近 1 的值

来自分类Dev

如何将浮点数四舍五入到最接近的最大int数?

来自分类Dev

什么是最好的(最小的)方法来检查字符串值并将其四舍五入到最接近的Int16

来自分类Dev

javascript:将浮点数四舍五入到最接近的.25(或其他值)。

来自分类Dev

将值四舍五入到最接近45度的最干净方法是什么?

来自分类Dev

给定离散分布,如何将数字四舍五入到该分布中最接近的值?

来自分类Dev

Xcode-考虑更改的基本x / y位置,四舍五入到最接近的X值

Related 相关文章

  1. 1

    四舍五入到最接近的N号

  2. 2

    四舍五入到最接近的n小时

  3. 3

    四舍五入到最接近的整数

  4. 4

    四舍五入到最接近的10000 Javascript

  5. 5

    四舍五入到最接近的5

  6. 6

    四舍五入到最接近的可用分数

  7. 7

    iOS:四舍五入到最接近的数字

  8. 8

    如何四舍五入到最接近的50?

  9. 9

    四舍五入到最接近的数字

  10. 10

    四舍五入到最接近的整数

  11. 11

    Javascript四舍五入到最接近的整数

  12. 12

    MATLAB 四舍五入到最接近的整数

  13. 13

    如何将wordpress中的价格四舍五入到最接近的值?

  14. 14

    将日期时间值四舍五入到最接近的半小时

  15. 15

    四舍五入到给定值的最接近倍数

  16. 16

    将字典中的值四舍五入到python中最接近的5吗?

  17. 17

    将值四舍五入到最接近的小时数

  18. 18

    在MySQL查询中将值四舍五入到最接近的2的幂

  19. 19

    将MySQL中的DATETIME值四舍五入到最接近的分钟

  20. 20

    将值四舍五入到最接近的50

  21. 21

    如何将excel中的数字四舍五入到最接近的实际值

  22. 22

    如何将十进制值四舍五入到最接近的整数?

  23. 23

    PHP 计算中四舍五入到最接近 1 的值

  24. 24

    如何将浮点数四舍五入到最接近的最大int数?

  25. 25

    什么是最好的(最小的)方法来检查字符串值并将其四舍五入到最接近的Int16

  26. 26

    javascript:将浮点数四舍五入到最接近的.25(或其他值)。

  27. 27

    将值四舍五入到最接近45度的最干净方法是什么?

  28. 28

    给定离散分布,如何将数字四舍五入到该分布中最接近的值?

  29. 29

    Xcode-考虑更改的基本x / y位置,四舍五入到最接近的X值

热门标签

归档