VB .NET中的错误总数

用户3782914

您好,我使用的是Microsoft VB 2012,但双精度总和存在问题。

这个简单的代码复制了它:

Dim result As Double = 0
Dim amount1 As Double = 81.83
Dim amount2 As Double = 50.0
result += amount1
result += amount2

结果等于131.82999999998而不是131.83

实际上:

Dim test1 As Double = 81.83 + 50.0   '(= 131.82999999998 wrong)
Dim test2 As Double = 81.83 + 50     '(= 131.82999999998 wrong)
Dim test3 As Double = 81.83 + 10     '(=  91.83 OK)
Dim test4 As Double = 81.82 + 50.0   '(=  131.82 OK)

有人可以解释吗?

最好的问候大卫

詹斯

双精度值只能精确表示某些数字。大多数值只能近似。有关更多详细说明,请参见Wikipedia。基本上,您有固定数量的十进制数字,具体取决于浮点数的大小(比较单数和双数)以及代表该数字的指数。因此,即使是简单的计算也会产生一些舍入误差。

为避免这种情况,您可以使用Decimal精确表示的数据类型该数据类型通常用于财务计算,例如避免这些错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Vb.net中的日期时间错误

来自分类Dev

VB.Net中的SQL语句错误

来自分类Dev

如何使用VB.net计算XML中具有相同属性值的节点总数

来自分类Dev

VB.NET声明错误

来自分类Dev

VB.NET图表-显示总数据点的子集

来自分类Dev

VB.NET和Linq:汇总数据表列,并在另一列中按日期分组

来自分类Dev

VB.NET和Linq:汇总数据表列,并在另一列中按日期分组

来自分类Dev

在VB.NET中乘以变量时的语法错误

来自分类Dev

VB.net中UPDATE语句中的语法错误

来自分类Dev

我的mysql查询是正确的,但在vb.net中是错误的

来自分类Dev

MS Access中的VB.Net查询语法错误

来自分类Dev

为什么我在Vb.Net中收到这些错误?

来自分类Dev

VB.net Web浏览器中的奇怪错误

来自分类Dev

VB.net中轮廓分析的代码错误

来自分类Dev

VB.NET中的MySQL语法错误

来自分类Dev

空值正在vb.net的datagridview中创建错误

来自分类Dev

VB.Net中Math.Round()函数的错误结果

来自分类Dev

在VB.NET中乘以变量时的语法错误

来自分类Dev

insert into 语句中的语法错误 - 在 VB.NET 中

来自分类Dev

如何解决VB.Net中的数学错误?

来自分类Dev

VB.NET JSON POST 请求中的错误 - HTTPWEBREQUEST

来自分类Dev

委托从VB6到vb.net的错误转换

来自分类Dev

VB.NET中的代表

来自分类Dev

在VB.net中拆分

来自分类Dev

在vb.net中拖放

来自分类Dev

vb.net中的PartPainted

来自分类Dev

在VB .Net中解析XML

来自分类Dev

VB.net中的EPPlus

来自分类Dev

VB.NET 中的 ActivePresentation