Разные виды двойников в vb.net? - PullRequest
0 голосов
/ 22 марта 2010

Я использую QBFC для генерации счетов в приложении интеграции Quickbooks. Я получаю исключение для lineItem.Amount.SetValue (val как Double), когда я пытаюсь ввести программно сгенерированный double.

Не работает следующее:

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

Исключение, которое я получаю, System.Runtime.InteropServices.COMException (0x80040305): неверный формат суммы. at Interop.QBFC8.IQBAmountType.SetValue (Double val)

Следующие работы:

lineItem.Amount.SetValue(20.3)

Есть предложения? .NET интерпретирует жестко запрограммированный дубль иначе, чем программно рассчитанный?

Благодарения и Jonathan

1 Ответ

1 голос
/ 22 марта 2010

Нашел это.

При выводе «суммы» показывалось 21,3

Однако при использовании отладчика «сумма» фактически содержала 21,299999999997.SetValue принимает только двойные числа с двумя десятичными точками.

Это помогло:

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

Есть ли более эффективный способ округлить двойные до двух десятичных знаков?

Спасибо

Джонатан

...