Поскольку n
- это int
, математика с правой стороны выполняется как целочисленная математика, а не как число с плавающей точкой. Затем результаты повышаются до значения с плавающей запятой для сохранения в result
.
result = 1 + n/(2*n+1)*3/2;
result = 1 + 1/3*3/2;
result = 1 + 1;
result = float(2);
Используйте float
константы, чтобы заставить его фактически рассчитываться как число с плавающей запятой.
result =1.0f + n/(2.0f*n+1.0f)*3.0f/2.0f;