VB.NET의 복식에서 반올림 오류에 대처하려면 어떻게해야합니까?
-
06-07-2019 - |
문제
vb.net을 사용하여 통화 값 세트의 균형을 맞추려고 노력하고 있습니다. 이 두 값의 총계는 이중으로 캐스팅됩니다. 어떤 상황에서는 반올림 오류가 발생합니다.
이것을 피하는 가장 좋은 방법은 무엇입니까? 두 배를 선호하는 유형이 있습니까? 결과 값을 소수점 이하 두 자리로 어떻게 반올림합니까?
여기 내 코드가 있습니다. 아마 보여줄 필요가 없지만 만일을 대비하여
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
해결책
재무 계산의 경우, 현재의 지혜는 복식 대신 소수를 사용하는 것이라고 생각합니다.
이 토론에 관심이있을 수 있습니다 십진수 대 더블.
다른 팁
소수점 유형을 사용해보십시오.
제휴하지 않습니다 StackOverflow