Avatar billede kratluskeren Nybegynder
08. maj 2004 - 11:18 Der er 9 kommentarer og
2 løsninger

Afrunde til 3 decimaler

Hey
Er der en der har en smart lille funktion,der kan afrunde et tal til 3 decimaler?
Avatar billede x4all_dk Nybegynder
08. maj 2004 - 11:28 #1
Umiddelbart ville jeg blot gange tallet med 1000 og så fjerne
decimalerne.. for så at dividere med 1000 igen.

Den funktion må være let at lave :-)
Avatar billede kratluskeren Nybegynder
08. maj 2004 - 11:40 #2
Jow, men den vil jo ikke afrunde korrekt.

123,455832 skulle jo gerne blive 123,456
Så kan jeg bruge en Math.round etc. men vil gerne have en færdig funktion pga tidspres :)
Avatar billede Slettet bruger
08. maj 2004 - 11:56 #3
var tal;
tal = Math.floor(tal * 1000) / 1000;
Avatar billede Slettet bruger
08. maj 2004 - 11:56 #4
det er meget dårligt kodet, men hvis du virkelig skal bruge det hurtigt, kan du bruge det, til du finder en funtion, der kan gøre det samme.
Avatar billede prom Nybegynder
08. maj 2004 - 12:01 #5
Math.round(8.345678*1000)/1000) returnerer 8.346
Avatar billede prom Nybegynder
08. maj 2004 - 12:05 #6
kvadratrodenaf1's løsning afrunder ikke korrekt...
- prom
Avatar billede roenving Novice
08. maj 2004 - 13:16 #7
kvadrats afrunder ikke, den returnerer heltals-delen ...
Avatar billede roenving Novice
08. maj 2004 - 13:44 #8
-- og hvis du altid skal have 3 decimaler i udskrift (også hvis der ikke er betydende værdier på de sidste cifre !-) skal du lidt længere:

function afrund(tal,decimaler){
  if(!(""+tal).match(/^[\d.]+$/))return tal;
  num = Math.pow(10,decimaler);
  endelse = "";for(i=0;decimaler>i;i++)endelse+="0";
  tal = ""+Math.round(+tal*num)/num;
  punkt = tal.indexOf(".");
  if(punkt<0)return tal + "."+endelse;
  return (tal+endelse).substring(0,punkt+decimaler+1);
}
Avatar billede kratluskeren Nybegynder
08. maj 2004 - 13:55 #9
Perfekt, vil gerne dele points mellem prom og roenving - smider du også et svar roenving? :)
Avatar billede roenving Novice
08. maj 2004 - 14:09 #10
Velbekomme '-)
Avatar billede roenving Novice
08. maj 2004 - 14:14 #11
-- og tak for point ;~}
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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