Question

J'utilise QBFC de générer des factures dans une application intégrant QuickBooks. Je reçois une exception levée pour lineItem.Amount.SetValue (val comme Double) lorsque je tente d'entrer dans un programme généré double.

Ce qui suit ne fonctionne pas:

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

L'exception que je reçois est System.Runtime.InteropServices.COMException (0x80040305): format Montant non valide.    à Interop.QBFC8.IQBAmountType.SetValue (Double val)

Les travaux suivants:

lineItem.Amount.SetValue(20.3)

Toutes les suggestions? Est-NET interpretting un disque codé à double différemment un programme calculé?

Action de grâce Jonathan

Était-ce utile?

La solution

Je l'ai trouvé.

L'impression de "quantité" a montré 21,3

Cependant, en utilisant le débogueur « quantité » effectivement contenu 21,299999999997. SetValue accepte uniquement double avec deux chiffres après la virgule.

a fait l'affaire:

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

Y at-il un moyen plus efficace pour arrondir un double à deux décimales?

Merci

Jonathan

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top