4

私は mysql 4.0 と共に Visual Studio 2005 を使用しています。請求書の金額を格納するフィールド (10 進数 16,4) を持つテーブルと、この請求書への支払いを含む別のテーブルがあります (フィールドも 10 進数 16,4 です)。 )

データを読み取り、4 つの列 (請求書、金額、支払い、残高) を持ついくつかのレコードを取得します。

invoice 454, Amount 8125.68 payments: 8125.68 balance : 0

支払いは合計(支払い)ステートメントから行われます。

関連する支払いからのレコードのデータは次のとおりです: 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!何が起きてる?

4

1 に答える 1

0

MySQL 4.0 の暗黒時代にDECIMAL使用されていたと思います。DOUBLEしたがって、厄介な結果とコメント。

(未回答から削除するために回答しています。)

于 2015-04-26T22:58:51.840 に答える