저는 vb.net을 사용하여 일련의 통화 가치를 균형 잡으려고합니다. 이 두 값의 합계는 double 값으로 변환됩니다. 어떤 상황에서는 반올림 오류가 발생합니다.vb.net에서 double에 반올림 오류를 처리하려면 어떻게해야합니까?
이 문제를 방지하는 가장 좋은 방법은 무엇입니까? 내가 더블보다 우선 사용할 수있는 타입이 있습니까? 결과 값을 두 소수점 이하로 반올림하려면 어떻게합니까?
내 코드는 다음과 같습니다. 아마도이 코드를 표시 할 필요는 없지만, 경우에 따라 사용할 수 있습니다.
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