1

QBFC を使用して、Quickbooks 統合アプリで請求書を生成しています。プログラムで生成された double を入力しようとすると、lineItem.Amount.SetValue(val as Double) に対して例外がスローされます。

以下は機能しません。

lineItem = invoice.ORInvoiceLineAddList.Append.InvoiceLineAdd
Dim amount as Double
amount = summary.dailySold * summary.dailyRate
loggingTxtBox.AppendText("Amount is " & amount & vbNewLine)
lineItem.Amount.SetValue(amount)

私が受け取る例外は System.Runtime.InteropServices.COMException (0x80040305): Invalid Amount format です。Interop.QBFC8.IQBAmountType.SetValue (Double val) で

以下の作品:

lineItem.Amount.SetValue(20.3)

助言がありますか?.NET はハードコードされた double をプログラムで計算されたものとは異なる方法で解釈していますか?

ありがとう - ジョナサン

4

1 に答える 1

2

それを見つけた。

「金額」を印刷すると21.3が表示されました

ただし、デバッガーの「金額」を使用すると、実際には 21.299999999997 が含まれていました。SetValue は、小数点以下 2 桁の double のみを受け入れます。

これはトリックをしました:

amount = CDbl(amount.ToString("F"))

double を小数点以下 2 桁に丸めるより効率的な方法はありますか?

ありがとう

ジョナサン

于 2010-03-22T01:07:55.387 に答える