كيف يمكنني التعامل مع أخطاء التقريب في الزوجي في vb.net؟

StackOverflow https://stackoverflow.com/questions/186693

  •  06-07-2019
  •  | 
  •  

سؤال

وأنا أحاول تحقيق التوازن بين مجموعة من قيم العملات باستخدام vb.net. يلقي مجاميع كل من هذه القيم كما مزدوج. أنا الحصول على أخطاء التقريب في بعض الحالات.

ما هي أفضل طريقة لتجنب هذا؟ هناك نوع I يمكن استخدامها في تفضيل لمضاعفة؟ كيف يمكنني تدوير القيمة الناتجة إلى منزلتين عشريتين؟

إليك قانون بلدي - أنا ربما لا تحتاج إلى إظهار ذلك، ولكن فقط في حالة.

  Dim nInvValue As Double
  Dim nCreditValue As Double

  For Each oReferenceItem In oMatchInvoices
     Dim nUnallocated As Double = oReferenceItem.DocumentOutstandingValue - oReferenceItem.DocumentAllocatedValue
     If ((nUnallocated <> 0) And (sReferenceValue = oReferenceItem.InstrumentNo)) Then
        iCount = iCount + 1
        If (oReferenceItem.IsDebit) And (nUnallocated > 0) Then
           nInvValue = nInvValue + nUnallocated
           InvoiceList.Add(nUnallocated.ToString("c"), oReferenceItem.URN.ToString)
        End If
        If (oReferenceItem.IsCredit) And (nUnallocated < 0) Then
           nCreditValue = nCreditValue - nUnallocated
           CreditList.Add(nUnallocated.ToString("c"), oReferenceItem.URN.ToString)
        End If
     End If
  Next
هل كانت مفيدة؟

المحلول

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

وكنت قد تكون مهتمة في هذه المناقشة عشري مقابل مزدوجة.

نصائح أخرى

وحاول استخدام نوع عشري.

MSDN - عشري

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