/ 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
simpelt nummerformat problem
Fra : Torben


Dato : 26-04-07 15:36

Hej

Jeg sidder og slås med et sikkert simpelt problem

Hvordan sikrer jeg mig, at en variabel der er sendt gennem et inputfelt i
formen:

12,75

bliver indlæst som

12.75

min felt i tabellen i mysql er sat til float 5,2 og

number_format($_REQUEST['beloeb'],2,'.',''); fungerer ikke... der komme
decimalen ikke med.

Torben



 
 
Dan Storm (27-04-2007)
Kommentar
Fra : Dan Storm


Dato : 27-04-07 07:28

Torben skrev:
> Hvordan sikrer jeg mig, at en variabel der er sendt gennem et inputfelt i
> formen:
>
> 12,75
>
> bliver indlæst som
>
> 12.75
>
> min felt i tabellen i mysql er sat til float 5,2 og
>
> number_format($_REQUEST['beloeb'],2,'.',''); fungerer ikke... der komme
> decimalen ikke med.

Brug ereg_replace() istedet og gør komma til punktum.
number_format() vil kun være relevant hvis du vil formatere tallets
tusindeseperator og antal decimaler og sådan.


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Michael Rasmussen (27-04-2007)
Kommentar
Fra : Michael Rasmussen


Dato : 27-04-07 09:34

Dan Storm skrev:

> Brug ereg_replace() istedet og gør komma til punktum.

Er det ikke lidt overkill med ereg til den opgave?

$str = '9.995,50';
if(strstr($str, ','))
{
$str = str_replace('.', '', $str); // erstat punktom med ingenting
$str = str_replace(',', '.', $str); // erstat ',' med '.'
}
echo $str; // 9995.50

--
Michael Rasmussen
------------------------------------------------------------------------
»If you don't fail at least 90 percent of the time,
you're not aiming high enough«, Alan Kay.

Bertel Lund Hansen (27-04-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 27-04-07 09:46

Michael Rasmussen skrev:

> $str = '9.995,50';
> if(strstr($str, ','))
> {
> $str = str_replace('.', '', $str); // erstat punktom med ingenting
> $str = str_replace(',', '.', $str); // erstat ',' med '.'
> }
> echo $str; // 9995.50

Det går galt ved 9.995 der indlæses som ca. 10. Drop if-testen.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Michael Rasmussen (27-04-2007)
Kommentar
Fra : Michael Rasmussen


Dato : 27-04-07 13:32

Bertel Lund Hansen skrev:

> Det går galt ved 9.995 der indlæses som ca. 10. Drop if-testen.

Grunden til if-testen er, at man så stadig kan taste det på amerikansk
facon, ala '9,999.50', men det kræver selvfølgelig særskilt behandling,
hvilket beklageligvis ikke fremgik tydeligt af mit indlæg.

--
Michael Rasmussen
------------------------------------------------------------------------
»If you don't fail at least 90 percent of the time,
you're not aiming high enough«, Alan Kay.

Dan Storm (27-04-2007)
Kommentar
Fra : Dan Storm


Dato : 27-04-07 11:57

Michael Rasmussen skrev:
> Er det ikke lidt overkill med ereg til den opgave?

Ved ikke om det er overkill til en så basal ting.
Pointen var bare at fortælle at number_format ikke var funktionen at
bruge i netop den sammenhæng.

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Søg
Reklame
Statistik
Spørgsmål : 177496
Tips : 31968
Nyheder : 719565
Indlæg : 6408491
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste