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

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Ændre talseperator
Fra : BJ


Dato : 11-08-07 11:54

Har skrevet om det her engang før uden at har fået det løst.

Jeg har et talt f.eks 96.00 der skal laves om til 96,00 (med komma istedet)
Det gør jeg sådan:

$nTotalSumNet = str_replace(",", ".", $nTotalSumNet);
$nTotalSumNet = $nTotalSumNet*100;

Det virker fint nok indtil der kommer et tusindtal, f.eks 1.891.00 det
bliver lavet om til 189.1 hvilket jo ikke er så smart, skal være 1891,00.

Nogen ide til hvordan jeg kan gør det ?

På forhånd tak.



 
 
Johan Holst Nielsen (11-08-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 11-08-07 12:24

BJ wrote:
> Har skrevet om det her engang før uden at har fået det løst.
>
> Jeg har et talt f.eks 96.00 der skal laves om til 96,00 (med komma istedet)
> Det gør jeg sådan:
>
> $nTotalSumNet = str_replace(",", ".", $nTotalSumNet);
> $nTotalSumNet = $nTotalSumNet*100;
>
> Det virker fint nok indtil der kommer et tusindtal, f.eks 1.891.00 det
> bliver lavet om til 189.1 hvilket jo ikke er så smart, skal være 1891,00.
>
> Nogen ide til hvordan jeg kan gør det ?

First of all... hvem skriver 1.981.00?

Normalt skriver man enten 1,981.00 eller 1.981,00 - men bruger ikke
samme separator begge stedeR?

Hvis du altid har , eller . - dvs. tallet ALTID har 2 decimaler med...
så kan du lavet noget ala

$nTotalSumNet = substr($nTotalSumNet,0,-3).".".substr($nTotalSumNet,-2);
$nTotalSumNet = (float)$nTotalSumNet*100;

Ellers skriv lige igen :)

Mvh
Johan

--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk

Johan Holst Nielsen (11-08-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 11-08-07 12:26

Johan Holst Nielsen wrote:
> $nTotalSumNet = substr($nTotalSumNet,0,-3).".".substr($nTotalSumNet,-2);

Ups - glemte replace i denne for tusindseparator

$nTotalSumNet =
str_replace(array('.',','),'',substr($nTotalSumNet,0,-3)).".".substr($nTotalSumNet,-2);


Mvh
Johan

BJ (11-08-2007)
Kommentar
Fra : BJ


Dato : 11-08-07 16:47


>> $nTotalSumNet = substr($nTotalSumNet,0,-3).".".substr($nTotalSumNet,-2);
>
> Ups - glemte replace i denne for tusindseparator
>
> $nTotalSumNet =
> str_replace(array('.',','),'',substr($nTotalSumNet,0,-3)).".".substr($nTotalSumNet,-2);
>

Ser ud til jeg har fået denne til at virke:

$nTotalSumNet = '2.123.00';

$nTotalSumNet = substr($nTotalSumNet,0,-3).".".substr($nTotalSumNet,-2);
$nTotalSumNet =
str_replace(array('.',','),'',substr($nTotalSumNet,0,-3)).".".substr($nTotalSumNet,-2);

echo $nTotalSumNet;

Tak for hjælpen begge 2.



Arne Feldborg (11-08-2007)
Kommentar
Fra : Arne Feldborg


Dato : 11-08-07 12:58

"BJ" <BJsnabela@svarikke.dk> skrev Sat, 11 Aug 2007 12:54:04 +0200


>Nogen ide til hvordan jeg kan gør det ?
>
Hvis du er sikker på, at du altid har to decimaler i det oprindelige
tal, så starter du bare med at lave beløbet om til ører (dvs. fjerne
alle eksisterende seperatortegn).

Og derefter kan du formatere det lige præcist som du har lyst.

$tal = '1,211,234.56';
$str = array(',', '.');
echo '<br>'.$tal;

$tal = str_replace ($str, '', $tal);
echo '<br>'.$tal;

$tal = number_format(($tal/100),'2',',','.');
echo '<br>'.$tal;

--
mvh, A:\Feldborg

Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/

BJ (11-08-2007)
Kommentar
Fra : BJ


Dato : 11-08-07 16:41

> Og derefter kan du formatere det lige præcist som du har lyst.
>
> $tal = '1,211,234.56';
> $str = array(',', '.');
> echo '<br>'.$tal;
>
> $tal = str_replace ($str, '', $tal);
> echo '<br>'.$tal;
>
> $tal = number_format(($tal/100),'2',',','.');
> echo '<br>'.$tal;
>

Hvordan får jeg lige formateret det så der kun er , for de sidste 2, altså
1189,00 ?



Johan Holst Nielsen (11-08-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 11-08-07 17:27

BJ wrote:
>> Og derefter kan du formatere det lige præcist som du har lyst.
>>
>> $tal = '1,211,234.56';
>> $str = array(',', '.');
>> echo '<br>'.$tal;
>>
>> $tal = str_replace ($str, '', $tal);
>> echo '<br>'.$tal;
>>
>> $tal = number_format(($tal/100),'2',',','.');
>> echo '<br>'.$tal;
>>
>
> Hvordan får jeg lige formateret det så der kun er , for de sidste 2, altså
> 1189,00 ?

echo number_format($tal/100,2,',','');


--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk

BJ (13-08-2007)
Kommentar
Fra : BJ


Dato : 13-08-07 05:35


> Jeg har et talt f.eks 96.00 der skal laves om til 96,00 (med komma
> istedet)
> Det gør jeg sådan:
>
> $nTotalSumNet = str_replace(",", ".", $nTotalSumNet);
> $nTotalSumNet = $nTotalSumNet*100;
>

Tak begge 2, nu har jeg langt om længe fået løst mit problem.



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste