完全递增/递减浮点类型数

时间:2016-04-23 12:52:11

标签: c++ increment decrement

我尝试做的是增加整个浮点值,例如:

递增

  

-0.09683964401

为:

  

1.09683964401

或:

  

1.09683964401

为:

  

2.09683964401

递减

  

-0.09683964401

为:

  

-1.09683964401

或:

  

-1.09683964401

为:

  

-2.09683964401

我知道我需要使用循环,但我该怎么办呢?

这就是我的尝试:

(float)myFloatValue++;

并没有做我真正需要的事情。

2 个答案:

答案 0 :(得分:0)

您的示例中的行为可以通过以下方式复制:

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;
}

答案 1 :(得分:0)

您不需要循环来递增或递减任何数字。使用++运算符

myFloatValue++

myFloatValue = myFloatValue + 1

这将增加整个数字而不仅仅是整数部分。如果只想增加整数部分,那么

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