我正在使用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。
为什么呢?我该如何解决?
答案 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)
的实际类型。如果它已经是双倍,则不会发生任何转换,我怀疑该字段已经存储了一个舍入值。