Mam problem z zaokrąglaniem w VBA.Problem zaokrąglania VBA
a = 61048.4599674847
b = 154553063.208822
c = a + b
debug.print c
Result:
154614111.66879
Oto pytanie, dlaczego VBA zaokrąglił zmienną c? Nie wydałem żadnej funkcji zaokrąglania. Oczekiwana wartość wyniosła 154614111.6687894847. Nawet jeśli zaokrąglę lub sformatuję zmienną c na 15 miejsc po przecinku, nadal nie otrzymam oczekiwanego wyniku.
Wszelkie wyjaśnienia byłyby mile widziane.
Edytuj:
Otrzymałem oczekiwane wyniki przy użyciu cDEC. Czytałem to w odpowiedzi Jonathan Allena w Why does CLng produce different results?
Oto wynik do testu:
a = cDec(61048.4599674847)
b = cDec(154553063.208822)
c = a + b
?c
154614111.6687894847
[arytmetyki zmiennoprzecinkowej może dawać niedokładne wyniki w programie Excel] (http://support.microsoft .com/kb/78113) – SeanC