Вопрос

Я использую QBFC для создания счетов-фактур в интегрирующем приложении Quickbooks.Я получаю исключение, сгенерированное для LineItem.Amount.Установите значение (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.Службы взаимодействия.COMException (0x80040305):Неверный формат суммы.при взаимодействии.QBFC8.IQBAmountType.setValue(Двойное значение)

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

lineItem.Amount.SetValue(20.3)

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

Спасибо- Джонатан

Это было полезно?

Решение

Нашел это.

Распечатка "суммы" показала 21.3

Однако при использовании отладчика "сумма" фактически содержала 21.299999999997.setValue принимает только удвоения с двумя десятичными запятыми.

Это сделало свое дело:

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

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

Спасибо

Джонатан

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top