Почему математика не округляется до 2 цифр? - PullRequest
0 голосов
/ 20 февраля 2020

После VB. Net код не возвращает ожидаемый результат:

        Dim sum As Single = 535353
        Dim vat As Single = Math.Round(sum * 0.19, 2)
        Dim total As Single = Math.Round(sum + vat, 2)

        Debug.WriteLine(String.Format("sum: {0:c2}, vat: {1:c2}, total: {2:c2}", sum, vat, total))

НДС правильно установлен на 101717.07 , но результат "total" равен 636070.063 . Почему последняя функция Math.round возвращает 3 цифры и неверный результат?

1 Ответ

0 голосов
/ 20 февраля 2020

Попробуйте, используя Double

    Dim sum As Double = 535353
    Dim vat As Double = Math.Round(sum * 0.19, 2)
    Dim total As Double = Math.Round(sum + vat, 2)
    '           sum     535353.0    Double
    '           total   637070.07   Double
    '           vat     101717.07   Double
...