Jump to content


Photo

RoundTo en C


  • Please log in to reply
2 replies to this topic

#1 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4111 posts
  • LocationMadrid - España

Posted 09 April 2014 - 04:02 PM

C tiene funciones de redondeo pero no tiene funciones de redondeo al decimal. Las versiones Builder antiguas no implementan el RoundTo de delphi. Respondí a esta cuestión a una pregunta  al respecto, en otro foro, con la siguiente función, que me ha parecido interesante trasladar aquí por si alguien lo busca:
 

cpp
  1. #include <math.h>
  2. // F el el núnero a redondear y d el decimal sobre el que queremos el redondeo.
  3. // Redondea hacia arriba o hacia abajo (0.5 hacia arriba; 0.4 hacia abajo)
  4. double RoundTo(double F, int d)
  5. {
  6.   double p = pow10(d);
  7.   return floor(F*p+0.5)/p;
  8. }

El equivalente en delphi sería, aunque no es necesario:

delphi
  1. uses Math;
  2.  
  3. function RoundTo(F: single; d: integer): double;
  4. var
  5.   p: double;
  6. begin
  7.   p:= Power(10, d);
  8.   Result:= Round(F*p)/p;
  9. end;

Saludos.
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14460 posts
  • LocationMéxico

Posted 09 April 2014 - 04:16 PM

Últimamente me he encontrado con éste problema en la oficina, aunque no en mis desarrollos, pero si a los de mis compañeros. Interesante :)

Saludos
  • 0

#3 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4945 posts
  • LocationMéxico

Posted 10 April 2014 - 08:53 AM

Gracias por compartirnos este dato amigo.
  • 0




IP.Board spam blocked by CleanTalk.