Avatar billede troelsm Nybegynder
07. oktober 2003 - 21:26 Der er 7 kommentarer og
2 løsninger

problem med Round runder ikke op ved ,5

Hejsa
Jeg har et problem med Round - den runder ikke altid op ved ,5 nogen som kan gennemskue hvorfor

1 Lis Dam
1 12,4
2 12,4
3 1,55
4 10,85
5 10,8
6 1317,6
7 11,6601769911504
8 82,9601769911504
9 10,9601769911504
<< her har jeg kode : tal = round(tal,2)
10 10,96
<< her har jeg kode : tal = round(tal,2)
11 11 
ALT OK - der afrundes til 11

1 33
2 33
3 4,125
4 28,875
5 28,9
6 3525,8
7 31,2017699115044
8 102,501769911504
9 30,5017699115044
<< her har jeg kode : tal = round(tal,2)
10 30,5
<< her har jeg kode : tal = round(tal)
11 30 
HER BURDE linie 11 jo give 31 ?????

nogen som kan gennemskue hvorfor at 30,5 IKKE bliver til 31
Avatar billede troelsm Nybegynder
07. oktober 2003 - 21:27 #1
rettelse i første eksempel skulle være
9 10,9601769911504
<< her har jeg kode : tal = round(tal,2)
10 10,96
<< her har jeg kode : tal = round(tal)    [RETTET her i forhold til indlæg 1]
11 11 
ALT OK - der afrundes til 11
Avatar billede erikjacobsen Ekspert
07. oktober 2003 - 21:42 #2
Det er som det skal være efter dokumentationen fra Microsoft

"The Round function performs round to even, which is different from round to larger."

Det er måske ikke som det skal være efter din intuition, og hvad vi plejer
at lære i matematik, men sådan er der jo så meget ...

Læs selv: http://msdn.microsoft.com/library/en-us/script56/html/vsfctRound.asp?frame=true
Avatar billede troelsm Nybegynder
07. oktober 2003 - 21:54 #3
Fedt, fedt men det var bare ikke det jeg ville.
Jeg forstår godt dokumentation fra MS,
men er der så nogen som kender et eller andet som afrunder efter "normale" matematiske regler...
Avatar billede eagleeye Praktikant
07. oktober 2003 - 21:58 #4
Du kan prøve med formatnumber, jeg kan ikke helt huske hvordan den runder af.

tal = formatnumber(tal,2)
Avatar billede erikjacobsen Ekspert
07. oktober 2003 - 21:59 #5
du kan lægge et mikroskopisk lille tal til ;)

  tal = 30.5017699115044

  response.write round(tal,2) & "<br>"

  response.write round(tal) & "<br>"

  tal2 = round(tal,2)

  response.write round(tal2) & "<br>"

  response.write round(tal2+0.0000001) & "<br>"

udskriver:


30.5
31
30
31
Avatar billede nmh Nybegynder
07. oktober 2003 - 22:06 #6
Prøv med FormatNumber(tal,0)
med tal=30.5 giver det 31
Avatar billede troelsm Nybegynder
12. november 2003 - 15:30 #7
smid lige et svar så jeg kan lukke det ?
Avatar billede nmh Nybegynder
12. november 2003 - 17:35 #8
Hvis du som afrundningsfunktion bruger FormatNumber(tal,0)
eller FormatNumber(tal,1),...
Virker det som det skal.
Jeg har ikke kunnet finde nogle "fejl".
Avatar billede eagleeye Praktikant
12. november 2003 - 22:56 #9
Ok ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester