【发布时间】: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!这是怎么回事?
【问题讨论】:
-
您是否尝试过 GetDecimal 而不是 GetValue?
-
欢迎来到floating number precision accuracy的精彩世界
-
右边第一个
Related主题是MySQL calculation issues 1+1 = 1.9999999。你读了吗? -
感谢您的提示。现在我知道在哪里可以找到解决方案了。