相关疑难解决方法(0)

舍入整数除法(而不是截断)

我很想知道如何将数字舍入到最接近的第十个整数.例如,如果我有:

int a = 59 / 4;
Run Code Online (Sandbox Code Playgroud)

以浮点计算的14.75; 如何将数字存储为"a"中的15?

c math int rounding integer-division

67
推荐指数
9
解决办法
13万
查看次数

整数除法在C++中用负数舍入

假设a并且b都是类型int,并且b非零.考虑a/b在以下情况下执行的结果:

  1. a并且b都是非负的.
  2. a并且b都是消极的.
  3. 其中只有一个是消极的.

在案例1中,结果向下舍入到最接近的整数.但标准对案例2和案例3有什么看法?我发现在互联网上浮动的旧草案表明它是依赖于实现的(是的,甚至是案例2),但委员会倾向于使其始终"向零舍入".有谁知道(最新)标准说的是什么?请仅根据标准回答,而不是有意义的回答,或者特定的编译器做什么.

c++ rounding

31
推荐指数
3
解决办法
2万
查看次数

舍入整数除法

是否有一种简单的pythonic方法可以在不使用浮点的情况下舍入到最接近的整数?我想做以下但使用整数运算:

skip = int(round(1.0 * total / surplus))
Run Code Online (Sandbox Code Playgroud)

==============

@John:浮点数不能跨平台重现.如果您希望您的代码在不同平台上传递测试,那么您需要避免浮点(或者在测试中添加一些hacky espilon内容并希望它能够正常工作).以上可能很简单,在大多数/所有平台上都是相同的,但我宁愿不做出这个决定,因为更容易完全避免浮点.那"不符合Python的精神"怎么样?

python rounding integer-division

23
推荐指数
3
解决办法
3万
查看次数

以下 C++ 代码用于 ->“#define idiv(a, b) (((a) + (b) / 2) / (b))”?

我正在处理经常使用一些重要优化的代码。是什么

#define idiv(a, b) (((a) + (b) / 2) / (b))
Run Code Online (Sandbox Code Playgroud)

用于?为什么不简单

#define idiv(a, b) ((a)/(b) + 0.5)
Run Code Online (Sandbox Code Playgroud)

是整数除法溢出保护还是其他什么?

c++ optimization

4
推荐指数
3
解决办法
118
查看次数

整数除法,舍入

有整数变量,电压以毫伏为单位.

signed int voltage_mv = 134; //134mV
Run Code Online (Sandbox Code Playgroud)

我有2段显示器,我想显示百分之一伏特.

如何在一次操作中将milivolts转换为百分之一伏?没有IF语句,没有功能?

134 => 13
135 => 14
Run Code Online (Sandbox Code Playgroud)

c algorithm division

0
推荐指数
1
解决办法
2069
查看次数

整数除法与舍入

我需要做整数除法.我希望以下内容返回2而不是实际1:

187 / 100 # => 1
Run Code Online (Sandbox Code Playgroud)

这个:

(187.to_f / 100).round # => 2
Run Code Online (Sandbox Code Playgroud)

会起作用,但作为解决方案似乎并不优雅.是不是只有整数运算符187 / 100 = 2呢?


编辑

因为我一直在投票,我会更清楚我的用例:

我需要计算一个价格税.我所有的价格都是美分.问责制世界中没有1美分以下,所以我需要确保我的所有价格都是整数(那些检查税的人不喜欢错误......真的!)

但另一方面,税率是19%.

所以我想找到最好的写作方式:

def tax_price(price)
  price * TAX_RATE / 100
end
Run Code Online (Sandbox Code Playgroud)

可靠地返回一个整数,而没有任何浮动副作用.

我害怕去float世界,因为它对数字表示有非常奇怪的副作用,如:

因此,我发现留在世界integerfractional世界更安全,因此我的问题.

ruby

-1
推荐指数
3
解决办法
5897
查看次数

标签 统计

rounding ×3

c ×2

c++ ×2

integer-division ×2

algorithm ×1

division ×1

int ×1

math ×1

optimization ×1

python ×1

ruby ×1