如何获取数字的小数点?例如:
如果我有1.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