Domanda

sto usando QBFC per generare fatture in una integrazione di app Quickbooks. Ricevo un eccezione generata per lineItem.Amount.SetValue (val come doppio) quando cerco di entrare in un livello di codice generato doppio.

La seguente non funziona:

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'eccezione che ricevo è System.Runtime.InteropServices.COMException (0x80040305): Formato Importo non valido.    a Interop.QBFC8.IQBAmountType.SetValue (Double val)

I seguenti lavori:

lineItem.Amount.SetValue(20.3)

Qualche suggerimento? È .NET interpretting un hard-coded doppia in modo diverso rispetto a quello di programmazione calcolato?

grazie- Jonathan

È stato utile?

Soluzione

Trovato esso.

La stampa di "quantità" ha mostrato 21,3

Tuttavia, utilizzando la "quantità" debugger in realtà contenuta 21,299999999997. ImpostaValore accetta solo doppie con due punti decimali.

Questo ha fatto il trucco:

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

C'è un modo più efficiente per arrotondare un doppio a due cifre decimali?

Grazie

Jonathan

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top