/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
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;



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste