转换为双重可疑的准确性

时间:2016-04-27 15:50:59

标签: vb.net double

我正在使用Convert.ToDouble(value)将OleDbDataReader类型转换为Double,但有时会添加额外的小数(我正在使用Access)。

示例:

让我们说data(0)持有值69,8(用逗号)

然后这是我的代码:

Dim data As OleDbDataReader = DBBroker.getInstance.read("SELECT ......")

Dim m as Double = Convert.ToDouble(data(0))

我的问题是,这会使m像69.80002302(或类似的东西)而不是像它真正包含的那样只有69.8。

为什么呢?我该如何解决?

1 个答案:

答案 0 :(得分:1)

嗯,你真的确定该字段确实包含69.8,或者简单地说,Access是否将值整齐?

如果您真的想要更加确定阅读器内部的内容,可以调试代码并使用 connectionFactory = new ConnectionFactory(); connectionFactory.setUsername("guest"); connectionFactory.setPassword("guest"); connectionFactory.setHost("localhost"); connectionFactory.setPort(5672); 检查值是否为null。如果不是,请查看Visual Studio中本地标签中.IsDbNull(0)的实际类型。如果它已经是双倍,则不会发生任何转换,我怀疑该字段已经存储了一个舍入值。