Avatar billede kimlarsen1978 Nybegynder
11. februar 2007 - 21:07 Der er 3 kommentarer og
1 løsning

Korrekt afrunding

Hejsa
Afrunding til 2 decimaler...
Hvordan sikre man at fx. 2,235 bliver rundet op til 2,24 og at 2,234 bliver rundet ned til 2,23?

Jeg har prøvet med både round og formatnamber, men de virker ikke alt for godt. Round runder 5 ned og ikke op...

Hvordan gøres dette?
Avatar billede anri Novice
11. februar 2007 - 21:14 #1
Konsekvent lægger du bare 0,001 til det tal du runder af.
Avatar billede anri Novice
11. februar 2007 - 21:29 #2
Altså 1,014 + ,001 = 1,015 Rundet ned til 1,01
      1,015 + ,001 = 1,016 Rundet op til 1,02
      1,019 + ,001 = 1,020 Rundet ned til 1,02
      1,010 + ,001 = 1,011 Rundet ned til 1,01
Avatar billede kimlarsen1978 Nybegynder
11. februar 2007 - 23:01 #3
Ja, det vil virker ved 2 decimaler, men der må da være en mere generel måde der også virker ved fx. 2,23333666885 som skal blive til 2,2333366689???
Avatar billede mbagge Nybegynder
12. februar 2007 - 11:30 #4
Da man som regel har brug for samme antal decimaler, ville jeg vælge ovenstående løsning. Men har du brug for forskelligt antal kan du lave en funktion i stil med følgende:

funktion afrund(tallet, antal_decimaler)
  -opfat tallet som streng
  -find tallet der afgør afrunding (placering af komma + antal_decimaler + 1)
  -Er dette tal mindre end 5
    afkort streg (left(tallet,antal_char)
  ellers
    afkort streng og læg een til sidste tal


Alternativt kunne man måske lave en funktion der benytter anris metode, og dynamisk finder frem til hvilket tal der skal plus'es med.

function afrund(tallet, antal_decimaler)
  -variabel_tal = 1 divideret med 10 i (antal_decimaler+1)
  altså fx 2 decimaler = 1 / 10 i treide = 0,001
  dernæst blot afrundring

/Bagge
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