|
| 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!
| |
|
|