|
| afrunding af float Fra : Henrik Skov Midtiby |
Dato : 17-01-02 08:22 |
|
Jeg er interesseret i at afrunde en float til en anden float med 2
decimalers præcision.
Noget i denne stil...
float a = 1.23456;
a = afrund(a, 2); //hvad skal der stå her????
printf("%f", a); //ønsket output "1.23"
Hvad gør jeg?
| |
Thomas Arildsen (17-01-2002)
| Kommentar Fra : Thomas Arildsen |
Dato : 17-01-02 08:43 |
|
"Henrik Skov Midtiby" <kirneh@smartin.dk> wrote in message
news:54c52baa.0201162322.5d2d3abb@posting.google.com...
> Jeg er interesseret i at afrunde en float til en anden float med 2
> decimalers præcision.
> Noget i denne stil...
>
> float a = 1.23456;
>
> a = afrund(a, 2); //hvad skal der stå her????
>
> printf("%f", a); //ønsket output "1.23"
>
> Hvad gør jeg?
Det her er ikke særlig elegant, men prøv at se, om det virker:
b = ( (float) ( (int) (10 * a) ) ) / 10;
Det er ikke sikkert, at der behøver at være så mange parenteser, men det er
for bedre at illustrere, hvad der hører sammen.
Mvh. Thomas Arildsen
| |
Jesper Toft (17-01-2002)
| Kommentar Fra : Jesper Toft |
Dato : 17-01-02 12:20 |
|
Henrik Skov Midtiby wrote:
> Jeg er interesseret i at afrunde en float til en anden float med 2
> decimalers præcision.
> Noget i denne stil...
>
> float a = 1.23456;
>
> a = afrund(a, 2); //hvad skal der stå her????
>
> printf("%f", a); //ønsket output "1.23"
>
> Hvad gør jeg?
Hvis det kun er for udskriftens skyld:
a = 1.2345678
printf("%.2f",a);
/Jesper Toft
| |
Henrik Skov Midtiby (18-01-2002)
| Kommentar Fra : Henrik Skov Midtiby |
Dato : 18-01-02 07:50 |
|
> Hvis det kun er for udskriftens skyld:
> printf("%.2f",a);
Det er ikke kun for udskriftens skyld (der er tale om et tal der skal
bruges i de videre beregninger)
Henrik Midtiby
| |
Thomas Krog (18-01-2002)
| Kommentar Fra : Thomas Krog |
Dato : 18-01-02 15:34 |
|
så kan du bruge floor funktionen:
#include <math.h>
a = 1.23456;
afrund = floor(a*100.0f+0.5f) / 100.0f;
| |
|
|