向上/向下舍入公式的元素,直到结果为整数
Rounding elements of a formula up/down until the result is an integer
我想向上或向下舍入a
直到结果是整数。
a = 1.2
b = 1.5
a*b*16 = 28.8
但是,我有一个标准:a
必须固定为不超过小数点后 3 位。所以我需要一个计算,上面的例子将输出到这个:
a = 1.25
b = 1.5
a*b*16 = 30
我实际上是在用 Sass 编写一些东西,但如果有人能指出我正确的方向,无论是用 JavaScript 还是其他什么写的。我只需要帮助制定这个令人困惑的计算!
标准: a
不得超过小数点后 3 位。 the result
必须是整数。
这可能吗?
如果限制变量的精度,则无论使用哪种方法,都无法保证结果为整数。
例子:
- 如果
(16 × 3( = 30/48 = 5/8 = 0.625
在这种情况下,0.625 × 3 × 16 = 30。
如果 × 7( = 30/112 = 15/56 = 0.267857...
四舍五入a
得到 0.268,0.268 × 7 × 16 = 30.016,这是您可以得出的最接近 30 的结果。 换句话说,没有满足标准的a
值,0.268 是你能做的最好的。
b
= 3,则 a
= 30/b
= 7,则 a
= 30/(16 但是,您可以求解最佳值,使结果尽可能接近整数。
求解所需变量的方程,然后舍入到适当的小数位数。
a = 30. / (16. * b); // true value
a = ((int) (1000 * a + 0.5)) / 1000; // round to 3 decimals
大多数现代语言都提供库函数来为您进行舍入;我把它写成"长手",所以你可以理解它是如何工作的。
i = Math.round(a*b*16);
a = i/b/16;
a = a.toFixed(2);
b = i/16/a;
Test om i==a*b*16
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- JSONP请求返回结果,但也触发error_callback
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 检测个位数整数时正在转换毫秒
- 限制javascript变量的最小/最大整数
- 如何在 Javascript 中将变量的值从字符串转换为整数
- 正则表达式只允许 x 个整数
- NaN作为函数结果而不是必需的整数出现问题
- 向上/向下舍入公式的元素,直到结果为整数
- 我需要将一个整数除以12,如果结果是浮点值,则用javascript将其加1
- 表单结果是整数,而不是字符串值
- 排序结果在JSON变量按整数
- 在NEGATIVE中得到正整数的和结果
- 将布尔结果转换为数字/整数
- 如何保证整数除法给出正确的结果
- 从javascript到php再到mysql发送的整数返回的结果不同
- 打印";.00";当结果是一个整数时
- 如何将字符串表达式更改为结果整数