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

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Afrunding "float"
Fra : Tommy Oksen


Dato : 20-02-01 18:47

hej,
hvordan afrunder jeg til 1 decimal ?

Eksempel:

float x = 3;
float y = 1/x;
float q = 2/x;

jeg vil gerne have y=0,3 og q=0,7

--
Mvh. Tommy
http://www.oksen.nu/


 
 
Ulrik Magnusson (20-02-2001)
Kommentar
Fra : Ulrik Magnusson


Dato : 20-02-01 19:42

> hvordan afrunder jeg til 1 decimal ?
> Eksempel:
> float x = 3;
> float y = 1/x;
> float q = 2/x;
> jeg vil gerne have y=0,3 og q=0,7

y = (int)(y * 10) / 10.0;

Ulrik Magnusson

--
"Less we love and know how we're just morter filling holes"
Skinny Puppy - 'Morter', The Process 1996
Visit my home page: http://www.geocities.com/ulrikm



N/A (21-02-2001)
Kommentar
Fra : N/A


Dato : 21-02-01 18:33



Tommy Oksen (21-02-2001)
Kommentar
Fra : Tommy Oksen


Dato : 21-02-01 18:33

On Tue, 20 Feb 2001 21:15:01 +0100, "Allan Unnerup"
<alu@udkik.dk> wrote:

>> y = (int)(y * 10) / 10.0;
>
>Det giver en trunkering!
>
>Brug i stedet y=(int)((y+0.05)*10)/10.0;

Hej, tak for hjælpen, desværre får jeg fejl når jeg compiler:

D:\java>javac graf.java
graf.java:47: possible loss of precision
found : double
required: float
x11=(int)((x11+0.05)*10)/10.0;
^
Det er lige meget hvad for en af jeres løsninger jeg bruger.
--
Mvh. Tommy
http://www.oksen.nu/



Carsten Sørensen (21-02-2001)
Kommentar
Fra : Carsten Sørensen


Dato : 21-02-01 22:34

"Tommy Oksen" <tommy@oksen.nu> wrote in message
news:sft79tont0vgutemk6odsegte8kq1mcn31@news.image.dk...
> x11=(int)((x11+0.05)*10)/10.0;

x11=(int)((x11+0.05)*10)/10.0f;


Carsten Sørensen




Tommy Oksen (22-02-2001)
Kommentar
Fra : Tommy Oksen


Dato : 22-02-01 16:31

On Wed, 21 Feb 2001 22:34:06 +0100, "Carsten Sørensen"
<surfsmurf@rift.dk.invalid> wrote:

>"Tommy Oksen" <tommy@oksen.nu> wrote in message
>news:sft79tont0vgutemk6odsegte8kq1mcn31@news.image.dk...
>> x11=(int)((x11+0.05)*10)/10.0;
>
>x11=(int)((x11+0.05)*10)/10.0f;

Hej, jeg kan desværre ikke få noget af det til at virke, men det
er jo nok fordi jeg har lavet fejl andre steder, så jeg har lagt
projektet ud på www.oksen.nu/graf.html hvor også kildekoden kan
downloades (hvis der er nogen der vil hjælpe).
Det jeg ønsker er, at tegne en graf som jeg kan zoome ind på,
dvs. tegne fx. (som i eksemplet) "y=x i anden" og så forstørre så
10 pixel =1, og 1 pixel = 0,1.
Det som jeg ikke kan få til at lykkes, er at lave "k" om til fx.
0,1 eller 1/10 , så jeg får tegnet en graf der er mere nøjagtig,
jeg har prøvet "næsten" alt med double, float og int, men kan
ikke få det til at virke. Så hvis der er nogen der vil gi mig det
rigtige spark, så bliver jeg glad.
--
Mvh. Tommy
http://www.oksen.nu/

Esben Mose Hansen (24-02-2001)
Kommentar
Fra : Esben Mose Hansen


Dato : 24-02-01 10:29

Tommy Oksen wrote:

> hvordan afrunder jeg til 1 decimal ?
> Eksempel:
> float x = 3;
> float y = 1/x;
> float q = 2/x;
> jeg vil gerne have y=0,3 og q=0,7


Tjah, her er mit forslag (jeg synes de andre var lidt "dyre", men det må
man jo selv om):

public class test {
public static void main(String[] args) {
double myfloat = 1.453425d;
double newfloat = myfloat-(myfloat % 0.1d);
System.out.println("Ny <"+myfloat+"> og gammel <"+newfloat+">");
}
}
Hmmm.. interessant nok giver den 1.400000000000001 (ca)., men det
illustrere vel blot faren ved at bruge floating point operations...
matematisk set er ovenstående ok. Vi lader billedet stå...

mvh. Esben


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste