我希望result
和result2
相同:
乘以.1 x 10
应该等于.1 + .1 + .1 + .1 + .1 + .1 + .1 + .1 + .1 + .1
。
public void DoubleAddition()
{
Double x = .1;
Double result = 10 * x;
Double result2 = x + x + x + x + x + x + x + x + x + x;
Console.WriteLine("{0} - {1}", result, result2);
Console.WriteLine("{0:R} - {1:R}", result, result2);
}
但Console.WriteLine("{0} - {1}", result, result2);
的输出为 1 - 1
并且何时使用往返式成形器,例如Console.WriteLine("{0:R} - {1:R}", result, result2);
然后结果为 1 - 0.999999999999999989
当我们使用往返格式化程序显示时,为什么result2
不完全是1
?
当我们声明Double d = 0.1
时,存储在内存中的值是多少?