Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript和C#_Javascript_C#_Kendo Ui - Fatal编程技术网

Javascript和C#

Javascript和C#,javascript,c#,kendo-ui,Javascript,C#,Kendo Ui,正如您所知,由于C 35;中的genius舍入规则,我们得到以下值: decimal d = 2.155M; var r = Math.Round(d, 2); //2.16 decimal d = 2.145M; var r = Math.Round(d, 2); //2.14 现在在客户端的Javascript中,我得到了: 2.155.toFixed(2) "2.15" 2.145.toFixed(2) "2.15" kendo.toString(2.155, 'n2') "2.1

正如您所知,由于
C 35;
中的genius舍入规则,我们得到以下值:

decimal d = 2.155M;
var r = Math.Round(d, 2); //2.16

decimal d = 2.145M;
var r = Math.Round(d, 2); //2.14
现在在客户端的
Javascript
中,我得到了:

2.155.toFixed(2)
"2.15"

2.145.toFixed(2)
"2.15"

kendo.toString(2.155, 'n2')
"2.16"

kendo.toString(2.145, 'n2')
"2.15"
但是我在后端进行了验证,由于这个原因失败了。处理这种情况的正确方法是什么?如何同步
C#
Javascript
舍入,以确保它们都舍入到相同的值?

有一个接受指示器,用于确定当数字介于其他两个数字之间时如何舍入。例如,中点到整数将0.5四舍五入为零,因为零是最接近的测试偶数:

decimal d = 2.155M;
var r = Math.Round(d, 2, MidPointRounding.AwayFromZero); //2.16

decimal d = 2.145M;
var r = Math.Round(d, 2, MidPointRounding.AwayFromZero); //2.15
根据定义
使用中点到偶数
,您的数字将始终四舍五入到最接近的偶数。这就是你得到的结果:

2.155 --> 2.16
2.145 --> 2.14
您可以指定要在C#中使用的规则:

小数的默认值是
中点舍入。ToEven
AKA,它旨在最小化多次舍入操作的偏差

圆半到偶数方法对称处理正值和负值,因此不存在符号偏差。更重要的是,对于y值的合理分布,四舍五入数字的平均值与原始数字的平均值相同。然而,当y为0时,该规则将引入一个向零偏移− 0.5是偶数,当它是奇数时,会有一个朝向无穷大的偏差。此外,它通过增加偶数相对于赔率的概率来扭曲分布


谢谢,明白了!错过了那个。非常感谢。实际上,我的问题完全在Javascript方面,我将创建一个新问题。
decimal d = 2.145M;
var r = Math.Round(d, 2, MidpointRounding.AwayFromZero); //2.15