Différents types de doubles dans vb.net?
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
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