/ * Hacer dos decimales en h y redondear el tercer dígito. Si h es 1234.567, la función devuelve 123.570000 h es 123.564, entonces devuelve 123.560000 * / #include <stdio.h> #include <conio.h> # incluye <stdlib.h> float fun ( float h) { int temp = ( int ) (h * 1000 + 5 ) / 10 ; return ( float ) temp / 100.0 ; } void main () { float a; while (scanf ( " % f " , & a)! = EOF) { printf ( " % f \ n " , diversión (a)); } }
Algoritmo de redondeo: si desea ser preciso al enésimo dígito después del punto decimal, debe realizar operaciones en n + 1 dígitos.
El método consiste en multiplicar el decimal por 10 a la potencia de n + 1 y sumar 5, luego dividir por 10 y forzar la conversión a un número entero,
luego dividir el número por 10 a la potencia de n y forzar la conversión a coma flotante.