目录
整数除法获取float类型结果
很多时候我们在c / c++中都会遇到除法计算,并想获取一个float 类型的结果。但是在很多平台上假如直接进行下面的计算(下面的语言是c++):
uint32_t s1Data = 1, s2Data = 10, s3Data = 3, s4Data = 4;
float res = (s1Data + s2Data) / (s3Data +s4Data);
std::cout << "res " << static_cast<float>(res) << std::endl;
这时我们并不会获得我们想要的floa类型的结果。
如果想获得floa类型的结果,需要在float计算的前面加上“1.0 *”:
float fRes = 1.0 * (s1Data + s2Data) / (s3Data +s4Data);
然后我们来看一下对应的计算及结果:
那么我们来回想一下为什么会出现这样的结果:
首先我们来回忆一下c / c++中的整数运算:/
可以看到,整数中的 “/” 将会返回除法运算结果中的整数部分。
而在除法运算的最开始加上“1.0 *”后,我们就等于告诉这个运算,这一个运算应该是float类型的计算。这样就可以获得我们想要的结果。
float类型比较
可以查看大佬写的,很详细:
https://blog.csdn.net/wangjianhs/article/details/105594897https://blog.csdn.net/wangjianhs/article/details/105594897