سؤال

أنا أستخدم QBFC لإنشاء فواتير في تطبيق QuickBooks دمج. أحصل على استثناء تم إلقاؤه لـ lineItem.amount.setValue (Val على أنه مزدوج) عندما أحاول إدخال مزدوج تم إنشاؤه برمجيًا.

ما يلي لا يعمل:

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): تنسيق مبلغ غير صالح. في interop.qbfc8.iqbamounttype.setValue (مزدوج Val)

الأعمال التالية:

lineItem.Amount.SetValue(20.3)

أي اقتراحات؟ هل .NET يفسر مزدوجًا مزدوجًا بشكل مختلف عن واحد محسوب برمجيًا؟

شكرا جوناثان

هل كانت مفيدة؟

المحلول

وجدت ذلك.

أظهرت طباعة "المبلغ" 21.3

ومع ذلك ، فإن استخدام "مبلغ" تصحيح الأخطاء يحتوي بالفعل على 21.29999999997. SetValue يقبل فقط الزوجي مع نقطتين عشريتين.

هذا فعل الحيلة:

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

هل هناك طريقة أكثر كفاءة لالتقاط مكانين مضاعفين إلى مكانين عشريين؟

شكرًا

جوناثان

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top