标签: rounding

如何围绕一个浮点数,使小数点后只有两个尾随数字?

我有一个像137.57667565656这样的浮点数,但我想将它舍入到小数点后面只有两个尾随数字,就像新的浮点数一样是137.58.

到目前为止我试过这个:

(Math.round((value*100)/100)).toFixed(2).toString();
Run Code Online (Sandbox Code Playgroud)

但不幸的是,它将我的价值调整为137.00.它将小数位添加为零,为什么?

我怎样才能实现上述目标?

javascript floating-point rounding significant-digits

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

如何将浮点值舍入为double值?

以下代码错误地针对人类:

double d = 0.7F;
System.out.println( d );
Run Code Online (Sandbox Code Playgroud)

打印价值:0.699999988079071

以下代码更好用:

double d = Double.valueOf( Float.toString( 0.7F ));
System.out.println( d );
Run Code Online (Sandbox Code Playgroud)

但是创建一个额外的String.没有额外的字符串,是否有更多的性能转换为float?

代码行很简单,只展示了问题.该计划更复杂.浮点值位于复杂模型的一部分中.格式化图层仅使用double.此外,DecimalFormat只接受double而不是float.

java floating-point double rounding-error rounding

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

有没有办法抑制python中的舍入?

有没有办法抑制python舍入,例如:

>>> getcontext().prec = 11; print (Decimal(1.1237836550999999999)*10**10)
11237836551
Run Code Online (Sandbox Code Playgroud)

我需要显示十进制数的前十位小数,所以实际上我需要11237836550作为输出,我不需要在最后一位数上舍入(在这种情况下,0舍入为1).

有时我可以增加精度(不是在这种情况下),然后安全地执行计算,如下所示:

>>> getcontext().prec = 14; print (Decimal(1.12378365509978)*10**10)
11237836550.998
Run Code Online (Sandbox Code Playgroud)

但是假设你在'0'之后不知道数字的小数部分,例如它可能是1.123783655099999999999999999999999999 ......等等,那么你不能依赖这个'变通方法'.

那么,有没有办法告诉python,"对于这个计算,我不希望执行任何舍入,实际上我想要你只返回我需要的小数位数(在这个例子中为10),扔掉任何东西其他之后"?

我在这里看了一下Python中的截断浮点数,但基本上我需要的不是一个截断浮点数的字符串,而是用于执行计算的另一个小数.此外,在trunc我链接的帖子中接受的答案的功能在这种情况下不起作用,因为十进制将在它被传递到函数的'f'参数之前被舍入:

>>> def trunc(f, n):
...     '''Truncates/pads a float f to n decimal places without rounding'''
...     return ('%.*f' % (n + 1, f))[:-1]
... 
>>> trunc(Decimal(1.12378365509978), 10)
'1.1237836551' # and not 1.1237836550 as needed
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?

python decimal rounding

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

在C++中舍入平均值的最简单方法

int a, b, c = 0;
c = (a+b)/2;
Run Code Online (Sandbox Code Playgroud)

在这段代码中,如果"a"和"b"都是偶数(例1),则没有问题.但如果其中一个是奇数(例2),则答案将为+0.5.我想把它整理一下.

例1.

a = 4,b = 10

c将= 7这没关系.

例2.

a = 3,b = 4

c将= = 3.5 我希望c被四舍五入而成为4.

c++ rounding

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

Javascript:舍入边界的2位小数0.5

如何获得0.5的舍入数,之前我在此链接中找到:

点击这里

但这不是我想要的:

我想要这个例子:

  1. 10.24 = 10.25
  2. 17.90 = 17.90
  3. 3.89 = 3.90
  4. 7.63 = 7.65

jQuery对我很好.

javascript decimal rounding

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

Javascript:累积到下一个十几岁的地方

我有一个javascript公式,使输入数字四舍五入number.

var number = x;

alert (Math.round(number / 10) * 10);
Run Code Online (Sandbox Code Playgroud)

这将输出11,12,13,14为10和15,16,17为20.

这不是我想要的; 我想添加1到10(11)并将其四舍五入,这将返回/打印20.

例:

  • 11,12,13,14 ...... 19轮到20轮
  • 21,22 ...... 29轮到30轮
  • 等等

javascript math rounding

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

在C#中舍入到超过15个小数位

Math.Round(decimal d, int decimals)在C#中使用将小数舍入到指定的小数位数.我可以舍入 15位小数,但是当我尝试舍入到16时,例如,我得到以下异常:

mscorlib.dll中出现未处理的"System.ArgumentOutOfRangeException"类型的异常附加信息:舍入数字必须介于0和15之间(包括0和15).

是否有任何方法可以舍入到更高的小数位数,也许没有使用Math.Round

为了给出更多问题的背景知识,我正在计算非理性数学常数,例如'pi'和'e',并让用户指定要计算的小数位数.用于检查值和先前值是否与给定精度相同的布尔值如下:

Math.Round(valuePrevious, decPlaces) == Math.Round(valueCurrent, decPlaces)
Run Code Online (Sandbox Code Playgroud)

c# math rounding

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

ROUND函数和算术溢出

在MS SQL Server中,如果我

SELECT ROUND(9.4, 0), ROUND(8.6, 0), ROUND(10.6, 0)
Run Code Online (Sandbox Code Playgroud)

我不出所料得到:

9.0 9.0 11.0
Run Code Online (Sandbox Code Playgroud)

但如果我这样做

SELECT ROUND(9.6, 0)
Run Code Online (Sandbox Code Playgroud)

我明白了:

消息8115,级别16,状态2,行1算术溢出错误将表达式转换为数据类型数字.

我知道我可以CAST(9.6 as DECIMAL(10,0)),但这里发生了什么?

TIA

sql sql-server rounding

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

Matlab将double转换为float

据我所知,双精度是MatLab的标准,但我想编写一个程序,找出最小的a(双精度),以便float(1 + a)> 1。是否有将双精度转换为单精度的功能?

double matlab rounding

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

如果值为1.01到1,如果1.1然后在java中为2,如何舍入?

在java中

如何舍入具有以下模式的值(float,bigdecimal或double),

(1)如果该值为1.0,即,如果小数以零开始,那么这不应四舍五入,该值应该是整数.即,在这种情况下为"1".

(2)如果值为1.1,即如果小数位数以大于0开头,则整数应舍入为下一个数字.即,如果1.1那么它应该是2.

java rounding

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