在.NET中,当我从1.35072中减去1.35时,它显示为.000719999999.使用时如何获得.00072 double?
TOTKILO.Text = KILO.Text * TOUCH.Text * 0.01; //here 1.35072
TextBox10.Text = TextBox9.Text * TextBox8.Text * 0.01; //here 1.35
K = Val(TOTKILO.Text) - Val(TextBox10.Text); //here it shows 0.00719999
Run Code Online (Sandbox Code Playgroud)
取决于你真正的要求.
如果你想要舍入到五位小数,你可以这样做:
double x = 1.35072;
double y = 1.35;
double z = Math.Round(x - y, 5); // 0.00072
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您的目标是始终通过添加/减去十进制数来获得精确结果,请使用该decimal类型而不是double因为它本身就是基数10类型(而不是基数为2的类型),因此可以表示数字以十进制形式精确表示.
decimal x = 1.35072M;
decimal y = 1.35M;
decimal z = x - y; // 0.00072M
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |