VB.NET-添加过程中的奇怪结果

VB.NET-添加过程中的奇怪结果,vb.net,Vb.net,今天我面临的问题是双重+1 Console.WriteLine(-1.09+1)-返回00900000000000001 Console.WriteLine(-1.05+1)-返回0,05 我在测试double的范围时,它给了我奇怪的值,我发现错误的是onlz区间-1.06到-1.09 使用Visual studio 16.4.5和框架目标4.7.2 尝试了console.writeline和其他变量值测试 是那个虫子还是我做错了什么 谢谢你多亏了彼得·克塞纳克,我们将使用CDec()函数来表示

今天我面临的问题是双重+1

Console.WriteLine(-1.09+1)
-返回00900000000000001

Console.WriteLine(-1.05+1)
-返回0,05

我在测试double的范围时,它给了我奇怪的值,我发现错误的是onlz区间-1.06到-1.09

使用Visual studio 16.4.5和框架目标4.7.2

尝试了console.writeline和其他变量值测试

是那个虫子还是我做错了什么


谢谢你

多亏了彼得·克塞纳克,我们将使用CDec()函数来表示更高的有效数字


谁需要进一步了解这一点

使用十进制数据类型,您就可以了。。这是因为,浮点数据类型具有浮点。。。。CDec(-1.09)+CDec(1.0)=-0.09看起来不错,谢谢先生!浮点数是基于二进制分数而不是十进制分数,并且有许多数字(其中1.09)不能用浮点数精确表示。因此,您可以在此处观察到较小的舍入误差。运行时和调试器试图在如何显示内容方面保持智能,以避免出现类似这样的意外结果,但它们并不总是成功。