Frage

Ich verwende QBFC Rechnungen in einer Quickbooks zu erzeugen App zu integrieren. Ich bin eine Ausnahme für lineItem.Amount.SetValue (val als Doppel) geworfen bekommen, wenn ich versuche, ein programmatisch die doppelt einzugeben.

Die folgenden funktioniert nicht:

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

Die Ausnahme, die ich erhalten ist System.Runtime.InteropServices.COMException (0x80040305): Ungültige Anzahl Format.    bei Interop.QBFC8.IQBAmountType.SetValue (Doppel val)

Die folgenden Werke:

lineItem.Amount.SetValue(20.3)

Irgendwelche Vorschläge? Ist interpretting .NET eine hartcodierte Doppel anders als ein programmatisch berechnet ein?

Thanks- Jonathan

War es hilfreich?

Lösung

es gefunden.

Ausdrucke von "Menge" zeigte 21,3

Allerdings mit dem Debugger „Menge“ enthalten tatsächlich 21,299999999997. SetValue akzeptiert nur Doppel mit zwei Dezimalstellen.

Dies hat den Trick:

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

Gibt es eine effizientere Art und Weise ein Doppel auf zwei Dezimalstellen abzurunden?

Danke

Jonathan

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top