Увеличивая / уменьшая полностью число типа float

Я пытаюсь увеличить значение с плавающей точкой, например:

-+0,09683964401

чтобы:

+1,09683964401

или же:

+1,09683964401

чтобы:

+2,09683964401

-+0,09683964401

чтобы:

-+1,09683964401

или же:

-+1,09683964401

чтобы:

-+2,09683964401

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

Вот что я попробовал:

(float)myFloatValue++;

который не делает то, что мне действительно нужно.

-4

Решение

Поведение в ваших примерах может быть воспроизведено:

void increment(float& f)
{
if ( f > -1 && f < 0 )
f = -f;
++f;
}

void decrement(float& f)
{
if ( f > 0 && f < 1 )   // Presumably; you didn't show any examples in this range
f = -f;
--f;
}
0

Другие решения

Вам не нужен цикл для увеличения или уменьшения любого числа. Используйте оператор ++

myFloatValue++

или же

myFloatValue = myFloatValue + 1

Это будет увеличивать все число, а не только целую часть. И если вы хотите увеличить только целую часть, то

myFloatValue = myFloatValue < 0 ? (-myFloatValue  + 1) : (myFloatValue +1);
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector