| |||
| 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()
{
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_
}
|