Pregunta

Estoy usando QBFC para generar facturas en una aplicación de la integración de QuickBooks. Estoy recibiendo una excepción lanzado para lineItem.Amount.SetValue (val como doble) cuando trato de entrar en una programación generaron doble.

La siguiente no funciona:

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

La excepción es que recibo System.Runtime.InteropServices.COMException (0x80040305): Cantidad formato no válido.    en Interop.QBFC8.IQBAmountType.SetValue (val Doble)

Las siguientes obras:

lineItem.Amount.SetValue(20.3)

¿Alguna sugerencia? Se interpretting .NET un doble codificado de manera diferente a una programación calculada?

Acción de Gracias Jonathan

¿Fue útil?

Solución

Encontrados ella.

La impresión de "cantidad" mostró 21.3

Sin embargo, el uso de la "cantidad" depurador realidad contenida 21.299999999997. FijarValor sólo acepta dobles con dos decimales.

Esto hizo el truco:

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

¿Hay una manera más eficiente para redondear un doble con dos decimales?

Gracias

Jonathan

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top