获取小数点

时间:2010-12-13 10:30:06

标签: c++

如何获取数字的小数点?例如:
如果我有1.5如何获得5号码?

5 个答案:

答案 0 :(得分:4)

int result = static_cast<int>(fmod(number, 1)*10);

编辑:或更简单,可能更快:

int result = static_cast<int>(number*10)%10;

编辑:为了使它可以用于负数,你可以这样做:

int result = abs(static_cast<int>(number*10))%10;

答案 1 :(得分:2)

说你有x=234.537

floor(x*10)给你2345

然后你需要将除法的余数除以10

所以:

int firstDecimal = floor(x*10)%10

答案 2 :(得分:1)

下面:

(int) (n*10) % 10

答案 3 :(得分:1)

有一种很简单的方法可以做到。

int GetFirstDecimalPlace( float f )
{
    const float dp = f - floorf( f ); // This simply gives all the values after the 
                                      // decimal point.
    return static_cast< int >( dp * 10.0f ); // This move the value after the decimal 
                                             // point to before it and then casts to an
                                             // int losing all other decimal places.
}

答案 4 :(得分:1)

使用无宏调用/函数调用处理负数的方法:

n < 0 ? (int) (-n * 10) % 10 : (int) (n * 10) % 10