我知道你不能正常依赖双重或十进制类型值之间的相等,但我想知道0是否是特殊情况.
虽然我可以理解0.00000000000001和0.00000000000002之间的不精确,但0本身似乎很难搞砸,因为它什么都没有.如果你对什么都不精确,那就不再是什么了.
但我对这个话题知之甚少,所以我不能说.
double x = 0.0;
return (x == 0.0) ? true : false;
Run Code Online (Sandbox Code Playgroud)
这会永远回归真实吗?
我有一个double名为的变量x.在代码中,x获取一个值,0.1我在'if'语句中检查它,比较x和0.1
if (x==0.1)
{
----
}
Run Code Online (Sandbox Code Playgroud)
不幸的是它没有进入if声明
我应该使用Double或double?
这背后的原因是什么?你能为此建议一个解决方案吗?
我是编程的新手,我有一个除零的问题.代码中的注释中解释了问题.
public float Divide (float a, float b)
{
if (!Equals (b, 0))
return a / b;
else
return 0; // what should this return contains not to giving me back infinite?
// But for example message that you can't divide by zero?
}
Run Code Online (Sandbox Code Playgroud) 我遇到了以下算术问题.
但结果与正常的数学运算不同,为什么会这样呢?
double d1 = 1.000001;
double d2 = 0.000001;
Console.WriteLine((d1-d2)==1.0);
Run Code Online (Sandbox Code Playgroud)