你可以将javascript中的数字舍入到小数点后的1个字符(正确舍入)吗?
我尝试了*10,round,/ 10但它在int的末尾留下了两位小数.
我需要一轮例如6.688689到6.7,但它总是显示我7.
我的方法:
Math.round(6.688689);
//or
Math.round(6.688689, 1);
//or
Math.round(6.688689, 2);
Run Code Online (Sandbox Code Playgroud)
但结果总是一样的7...我做错了什么?
根据文档,该decimal.Round方法使用round-to-even算法,这对于大多数应用程序来说并不常见.所以我总是最终编写一个自定义函数来做更自然的圆半算法:
public static decimal RoundHalfUp(this decimal d, int decimals)
{
if (decimals < 0)
{
throw new ArgumentException("The decimals must be non-negative",
"decimals");
}
decimal multiplier = (decimal)Math.Pow(10, decimals);
decimal number = d * multiplier;
if (decimal.Truncate(number) < number)
{
number += 0.5m;
}
return decimal.Round(number) / multiplier;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道这个框架设计决策背后的原因?
是否有任何内置的圆形半算法实现到框架中?或者可能是一些非托管Windows API?
对于初学者而言,这可能会产生误导,因为他们只是写了一个decimal.Round(2.5m, 0)期望3但结果是2.
我想在c#中将两位小数值加倍,我怎么能这样做?
double inputValue = 48.485;
Run Code Online (Sandbox Code Playgroud)
结束后
inputValue = 48.49;
Run Code Online (Sandbox Code Playgroud)
我有一个数字,例如1.128347132904321674821,我想在输出到屏幕(或写入文件)时只显示两位小数.怎么做到这一点?
x <- 1.128347132904321674821
Run Code Online (Sandbox Code Playgroud)
编辑:
指某东西的用途:
options(digits=2)
Run Code Online (Sandbox Code Playgroud)
已被建议作为可能的答案.有没有办法在脚本中指定一次性使用?当我将它添加到我的脚本时,它似乎没有做任何不同的事情,我对很多重新键入格式化每个数字感兴趣(我正在自动化一个非常大的报告).
-
答案:round(x,digits = 2)
我需要一个简单的浮点舍入函数,因此:
double round(double);
round(0.1) = 0
round(-0.1) = 0
round(-0.9) = -1
Run Code Online (Sandbox Code Playgroud)
我能找到ceil()和floor()在math.h中-但不是round().
它是以另一个名称存在于标准C++库中,还是缺少?
我有像3.2和的浮点数1.6.
我需要将数字分成整数和小数部分.例如,值3.2将被分成两个数字,即3和0.2
获取整数部分很简单:
n = Math.floor(n);
Run Code Online (Sandbox Code Playgroud)
但是我无法获得小数部分.我试过这个:
remainer = n % 2; //obtem a parte decimal do rating
Run Code Online (Sandbox Code Playgroud)
但它并不总是正常工作.
前面的代码具有以下输出:
n = 3.1 => remainer = 1.1
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?
我需要将分钟转换为小时,舍入到2位小数.我还需要在小数点后最多显示2个数字.所以如果我的分钟为650.那么小时应该是10.83
这是我到目前为止所拥有的:
Select round(Minutes/60.0,2) from ....
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,如果我的分钟是630小时,那么我的分钟数是10万.但我只希望它为10.50(在四舍五入后).我该如何实现这一目标?
如何在JavaScript中舍入数字?
math.round() 不起作用,因为它将它舍入到最接近的小数.
我不确定是否有更好的方法可以做到这一点,除了在保持第一位的小数点分开它.必须有...