Увеличение десятичного числа с плавающей запятой - PullRequest
0 голосов
/ 12 января 2011

Кто-нибудь может объяснить лучшую логику / метод увеличения числа с плавающей запятой?

Например, если мы предположим, что начальное десятичное число равно 2,0, то следующим элементам должно автоматически присваиваться число, скажем, 2,01, 2,02, 2,03, ....., 2,09, 2,10, 2,11 и т. Д.

Но каково начальное число 2,1, так что будет следующей последовательностью:

Это так? 2,11, 2,12, 2,13, 2,14, ..... 2,19, 2,20 и т. Д ...?

Я логически правильно? Я сбит с толку. Пожалуйста помоги.

Ответы [ 4 ]

2 голосов
/ 12 января 2011

Это полностью зависит от того, что нужно приложению.Вам нужно считать по сотым?Если это так, то эти последовательности имеют смысл.

Чтобы избежать ошибки округления, вы можете сохранить начальное значение, количество приращений и размер приращения, например:

      float start = 2.0;
      float increment = 0.01;

      for (int i = 0; i < 10; i++)
      {
            printf("%f ", start + increment * i);
      }
0 голосов
/ 29 июля 2018
double i= 5.012;     //variable i holds a double floating point number.
                     // float/double/long double any type can be used.

i+= 0.1;             //increment i by 0.1
0 голосов
/ 13 июля 2014

«Приращение значения с плавающей запятой должно выполняться оператором приращения». Но это невозможно, поскольку оператор приращения работает только с числом до десятичных цифр.Если для числа с плавающей запятой применяется оператор приращения, последовательность значений равна 0,1, 1,1, 2,1, 3,1 и т. Д.

0 голосов
/ 12 января 2011

Я думаю, что это будет произвольно определяться тем, что вы пытаетесь изобразить. Например, в версиях программного обеспечения нормально иметь 7,9, 7,10, 7,11 и т. Д., И вы все равно будете знать, что 7,10 больше 7,9. Конечно, вы бы дали им специальную обработку, арифметика по умолчанию не будет применяться.

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