相关疑难解决方法(0)

根据平台,C#舍入不同?

我有这么小的代码

double s = -2.6114289999999998;
double s7 = Math.Round(s, 7);
double s5 = Math.Round(s, 5);
double s6 = Math.Round(s, 6);
Run Code Online (Sandbox Code Playgroud)

有了Platform = Any CPU,我明白了

s7: -2.611429   
s5: -2.61143    
s6: -2.611429   
Run Code Online (Sandbox Code Playgroud)

使用Platform = x64,我得到了

s7: -2.6114289999999998 
s5: -2.61143    
s6: -2.6114289999999998
Run Code Online (Sandbox Code Playgroud)

为什么?(从VS的Locals窗口复制的输出)


整段代码是:

    private void btnAlign_Click(object sender, EventArgs e)
    {
        double s = -2.6114289999999998;
        double s7 = Math.Round(s, 7);
        double s5 = Math.Round(s, 5);
        double s6 = Math.Round(s, 6);
    }
Run Code Online (Sandbox Code Playgroud)

c# rounding

17
推荐指数
1
解决办法
1067
查看次数

标签 统计

c# ×1

rounding ×1