20210710- c++ 整数除法的精度损失
计算1+1/(1+1/(1+1/5))。由于c++默认整数除法,且向下取整,因此进行除法时不进行类型转换将损失精度。且与左边的赋值语句无关,因为先计算后赋值。
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
float y = 0;
// c++默认当作整数之间的除法,而且向下取整。
// 所以计算1+1/(1+1/(1+1/5))会损失精度。
y = 1.0+1.0

本文探讨了C++中整数除法导致的精度损失问题,例如在计算1+1/(1+1/(1+1/5))时,由于整数除法的向下取整特性,精度受到影响。作者指出,可以通过强制类型转换来避免这种损失,并计划后续补充详细方法。此外,还提及了一个相关问题等待进一步研究。
最低0.47元/天 解锁文章
4404

被折叠的 条评论
为什么被折叠?



