Avatar billede mibu Nybegynder
09. august 2007 - 14:17 Der er 18 kommentarer og
1 løsning

talværdig med default 2 decimaler

Jeg har nogle datebase query's der returer talværdiger med fast 2 decimaler (type decimal 10,2)
Disse værdier lader jeg så php beregne lidt på. Men har jeg f.eks. værdierne 10,50 + 10,50 så svarer php = 11 og 2,45 + 2,45 = 4,9 osv.

Hvordan får jeg php til at sætte to decimaler ?
Avatar billede jakobdo Ekspert
09. august 2007 - 14:38 #1
$output = number_format('4,9', 2, ',', '.');
Avatar billede nemlig Professor
09. august 2007 - 14:38 #2
Bruge funktionen number_format.
Eks:
number_format($el_kr, 2, ',', '.')
Avatar billede olebole Juniormester
09. august 2007 - 14:42 #3
<ole>

Nu skal vi nok lige holde munden rundt om tungen  ;o)
Før du kan komme igang, må du lige konvertere til et tal, PHP kan bruge til noget:

$tal = "12,4";
$tal = str_replace(",", ".", $tal);
$tal = number_format($tal, 2, ',', '.');
print $tal;

/mvh
</bole>
Avatar billede mibu Nybegynder
09. august 2007 - 14:56 #4
HÆ hæ!
Det var jo hele tre ting :-)

Når men så går der tid med det!
Eksempel:

{
$ialt = $tal1 + $tal2;
}

Hvor puttet jeg et forslag ind?
Avatar billede olebole Juniormester
09. august 2007 - 14:58 #5
Du må lige forklare, hvad der ligger i de to variabler - og evt. hvor det kommer fra. Er der tale om decimaltal i internationalt format?
Avatar billede olebole Juniormester
09. august 2007 - 14:58 #6
- og er der tale om tal eller strenge?
Avatar billede jakobdo Ekspert
09. august 2007 - 14:59 #7
Sådan f.eks.:
{
$ialt = number_format($tal1+$tal2, 2, ',', '.');
}
Avatar billede mibu Nybegynder
09. august 2007 - 15:08 #8
jakobdo har forstået og må gerne svare! Det virker!

Men $tal1 og $tal2 er query resultater fra min db, som php skal lægge sammen.

Tak til alle for hjælpen.
Avatar billede jakobdo Ekspert
09. august 2007 - 15:31 #9
Du kunne jo evt. få mysql til at regne for dig?
SELECT tal1 + tal2 = ialt FROM tabel
Avatar billede jakobdo Ekspert
09. august 2007 - 15:32 #10
Det skel vel egentligt være: SELECT (tal1 + tal2) AS ialt FROM tabel
Avatar billede olebole Juniormester
09. august 2007 - 15:32 #11
mibu >> okay, så 'tallene' ser med andre ord ikke ud, som dem du viste dem i spørgsmålet?
Avatar billede mibu Nybegynder
09. august 2007 - 15:43 #12
jakobdo >> Det er lettere som jeg har gjort, da der er flere sammetælleinger og tallene kommer fra flere tabeller.

olebole >> Jo! Tallene kommer fra db med to decimaler, men php skærer overfødige nuller af når der lægges sammen.
Avatar billede jakobdo Ekspert
09. august 2007 - 15:50 #13
Takker for point.
Avatar billede olebole Juniormester
09. august 2007 - 15:50 #14
mibu >> er der mon komma eller punktum? Hvis der er komma (som i dit spørgsmål), er der ikke tale om tal, men strenge. Du får en fejl, hvis du skriver:
    $tal = 2,45; // Noget sludder, som udløser en fejl i PHP

- men ikke, hvis du skriver:
    $tal = 2.45; // Et tal, som PHP kan regne med

- eller:
    $tal = "2,45"; // En tekststreng, som PHP ikke kan regne med

Med respekt er jakobdos eksempler derfor forkerte i forhold til spørgsmålet - men åbenbart ikke i forhold til de reelle forhold  ;o)
Avatar billede mibu Nybegynder
09. august 2007 - 16:01 #15
det bliver teknisk nu :-) men jeg ser hvad du mener, helt tilfældigt køre min myqsl med engelsk/amerikansk talseperator - altså . ! Derfor får jeg ikke fejl, men dit input er da værd at huske til en anden gang (eller for andre)

Så tak for det!
Avatar billede olebole Juniormester
09. august 2007 - 16:24 #16
Det er nemlig hele pointen ... PHP og MySQL kører med internationalt (amerikansk) decimalpunkt. Derfor står der ikke i databsen, som du skrev i spørgsmålet ... det var bare det, jeg mente  ;o)
Avatar billede mibu Nybegynder
09. august 2007 - 16:31 #17
Det er de små ting der bestemmer om det bliver succes eller fiasko :-)
Avatar billede olebole Juniormester
09. august 2007 - 18:11 #18
yups ... jakobdo må vist lære mig noget clairvoyance ... kan du ikke skrive en artikel om emnet, Jakob?  ;D
Avatar billede jakobdo Ekspert
09. august 2007 - 18:22 #19
Hehe! :o)
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