Dart Double Decimal после нескольких сложений - PullRequest
0 голосов
/ 16 июня 2020

При попытке запустить следующий фрагмент:

void main() {
      double step = 0.1;
      double currentAmount = 1;
            while (currentAmount < 2) {
              currentAmount = currentAmount + step;
              print (currentAmount);
            }
    }

Результат выглядит следующим образом:

1.1
1.2000000000000002
1.3000000000000003
1.4000000000000004
1.5000000000000004
1.6000000000000005
1.7000000000000006
1.8000000000000007
1.9000000000000008
2.000000000000001

Может ли кто-нибудь сказать мне, почему десятичные дроби появляются как таковые, и является ли это нормальное поведение?

1 Ответ

0 голосов
/ 16 июня 2020

Это потому, что вы теряете точность, посмотрите на этот пакет , он должен решить вашу проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...