| |||
Aquí me has pillado, no sé si existe una función específica en el ANSI-C. Una solución sucia y rápida que se me ocurre, es multiplicar por una potencia de 10 para dejar en la parte entera lo que quieras conservar, y en la decimal lo que no, para después usar modf() para conseguir la parte entera, y dividirla de nuevo por la misma potencia de 10. |
| ||||
No es tan sucio. Puedes hacer lo siguiente:
Código:
Lo probe y anda joya float truncar(float nro){ long x = 1000 * nro; float y = (float)x / (float)1000; return y; }
__________________ http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux |
| |||
Cita: Ya bueno, pero es "más correcto" usar modf() para conseguir la parte entera, puesto que sirve para ese propósito.En cualquier caso sería mejor añadir el número de decimales a coger: float truncar(float f, unsigned int n) { float d = pow(10,n); return ((long)(d * f)) / d; } |
| ||||
JEJE, podriámos hacer un concurso de quién hace los códigos mas SUCIOS y cortos
__________________ http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux |
| |||
Para eso ya tenemos el concurso de Obfustaced C:
Código:
#define _ F-->00 || F-OO--; long F=00,OO=00; main(){F_OO();printf("%1.3f\n", 4.*-F/OO/OO);}F_OO() { _-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_ } |