0

这更像是一个谜题/逻辑类型的问题,而不是一个编程问题——但我希望有人能提供帮助,因为我很难过。

我从一个整数开始,需要取其​​中的 X%。一旦我得到那个双数,我需要将它四舍五入到一个整数(称之为 Y)。我是否将它舍入实际上并不重要,而且我并不真正关心它的走向(向上或向下),因此使用地板/天花板将是一个可接受的解决方案——我只需要一个 int。

稍后在系统中,我将看到 int Y,并且需要知道原始数字是什么。在这一点上,如果我知道百分比是多少,并且我知道我用什么方法将 double 转换为 int - 我如何确定原始数字。

这需要适用于每个原始数字/百分比组合。

例子:

Original number: 997
Percentage: 90
Int-Conversion Method: Floor

997 * .90 = 897.3
floor(897.3) = 897
Y = 897

.. .. 给定 897,并且知道百分比和 int 转换方法,我如何确定原始数字是 997?

4

2 回答 2

2
997 * .90 = 897.3
floor(897.3) = 897
Y = 897

鉴于您建议的方法,我将解释为什么无法返回确切的数字,鉴于您提供的方法和数据。

计算百分比很好,你只剩下这个double值了。然后,您可以使用该floor函数有效地截断一些数据。截断不是双射,所以你不能从 897 -> 897.3 回去,所以在一定程度上不可能重现原始数字。考虑到您提供的数据的规模,您不会大错特错,但是对于更大的值,或者对于需要更高精度的情况,您可能会发现这种方法很像猜测工作。

于 2013-03-07T17:05:18.027 回答
0

你会使用公式

original number = calculated number / percentage

使用您的号码

997 = 897 / 0.90

在原计算和逆计算中,需要对答案进行四舍五入。

如果你不这样做,当你进行反向计算时,你会经常偏离。

于 2013-03-07T17:05:10.423 回答