【问题标题】:RS.GetValue(RS.GetOrdinal("balance")) produces an unexpected valueRS.GetValue(RS.GetOrdinal("balance")) 产生一个意外的值
【发布时间】:2012-10-20 09:27:31
【问题描述】:

我正在使用 Visual Studio 2005 和 mysql 4.0,我有一个表,其中包含一个字段(十进制 16,4),用于存储发票金额,另一个表包含该发票的付款(字段也是十进制16,4)

我读取了数据并获得了一些包含 4 列的记录(发票、金额、付款、余额)

invoice 454, Amount 8125.68 payments: 8125.68 balance : 0

付款来自 sum(payments) 报表。

相关支付记录的数据为:8122.16, 0.0900, 0.0050, 1.6900, 1.7350

总数为 8125.68

我这样读取数据:

Dim Conn As New MySqlConnection(myConnString)
Dim RS As MySqlDataReader
dim Q as string="SELECT.........." ' MYSQL STATEMENT

Dim CM As New MySqlCommand(Q, Conn)

RS = CM.ExecuteReader

While RS.Read
   RS.GetValue(RS.GetOrdinal("invoice")) 
   RS.GetValue(RS.GetOrdinal("amount")) 
   RS.GetValue(RS.GetOrdinal("payments")) 
   RS.GetValue(RS.GetOrdinal("balance")) 
End While

一切正常,但它的价值:

RS.GetValue(RS.GetOrdinal("balance")) 

0.000000009456544,而不是0.00!这是怎么回事?

【问题讨论】:

标签: mysql vb.net decimal


【解决方案1】:

我认为DECIMAL 在 MySQL 4.0 的黑暗时代使用过 DOUBLE。因此产生了诡异的结果和 cmets。

(回答是为了从未回答中删除。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多