gpt4 book ai didi

javascript - Javascript Math.Round 与 C# Math.Round 有多接近?

转载 作者:数据小太阳 更新时间:2023-10-29 04:39:29 24 4
gpt4 key购买 nike

我从阅读中知道this Stackoverflow question编译器将查看您的数字,确定中点是偶数还是奇数,然后返回偶数。示例数字是 2.5,四舍五入为 3。我尝试了自己的小实验以查看会发生什么,但我还没有找到任何关于此的规范,或者即使它在浏览器之间是一致的。

这是一个使用 jQuery 进行显示的 JavaScript 片段示例:

$(document).ready(function() {
$("#answer").html(showRounding());
});

function showRounding() {
var answer = Math.round(2.5);
return answer;
}

这将返回“3”。

我想知道的是:JavaScript 中的舍入与 C# 中的等效舍入有多接近?我这样做的原因是因为我想采用一个使用 Math.Round 的 JavaScript 方法并将相同的方法重写到 C# 中并且想知道我将能够获得相同的方法四舍五入后的结果。

最佳答案

这是 the complete javascript specification对于 Math.round(x):

15.8.2.15 round (x) Returns the Number value that is closest to x and is equal to a mathematical integer. If two integer Number values are equally close to x, then the result is the Number value that is closer to +∞. If x is already an integer, the result is x.

  • If x is NaN, the result is NaN.
  • If x is +0, the result is +0.
  • If x is −0, the result is −0.
  • If x is +∞, the result is +∞.
  • If x is −∞, the result is −∞.
  • If x is greater than 0 but less than 0.5, the result is +0.
  • If x is less than 0 but greater than or equal to -0.5, the result is −0.

NOTE 1 Math.round(3.5) returns 4, but Math.round(–3.5) returns –3.

NOTE 2 The value of Math.round(x) is the same as the value of Math.floor(x+0.5), except when x is −0 or is less than 0 but greater than or equal to -0.5; for these cases Math.round(x) returns −0, but Math.floor(x+0.5) returns +0.

The C# Language Specification不规定任何特定的舍入算法。我们拥有的最接近的东西是 .NET 的文档 Math.Round .从那里,您可以看到一些 javascript 情况不适用(Math.Round 只处理小数和 double ,而不是无穷大),并且该方法的重载使您可以更好地控制结果- 您可以指定结果中的小数位数和中点舍入方法。默认情况下,Math.Round 使用“银行家四舍五入”(甚至)。

关于javascript - Javascript Math.Round 与 C# Math.Round 有多接近?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1862992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com