Avatar billede straszek Praktikant
17. november 2005 - 19:08 Der er 3 kommentarer og
1 løsning

validering/formaterin af tal

Jeg er ved at lave et mindre betalingssystem og har et problem jeg har brug for til at får løst.

Jeg har et felt  - beløb -  hvor der kan indtastet et beløb, som så gemmes i mysql, hvor jeg bruger felttypen decimal(10,2).

Problemet er at hvis en bruger f.x. indtaster 25.000,00 - så vil det der bliver gemt i mysql være 25,00, og det er jo lidt for lidt.

Jeg forstiller mig en funktion der fjerne punktum, men på en måde så et evt punktum før decimalerne ikke fjernes altså så 25.000,50 bliver til 25000,50 og så f.x. at 1050.50 ikke bliver til 105050

hvordan kan den kringles??
Avatar billede jakobdo Ekspert
17. november 2005 - 19:12 #1
Du kunne lave en regexp som validere beløbet.
Og f.eks. sige dit system kun vil godkende: 1000,50
Og alle andre muligheder, der vil brugeren få besked på det skal være sådan: 1000,50
Avatar billede straszek Praktikant
17. november 2005 - 19:14 #2
det lyder fornuftigt - desværre er det ikke noget jeg selv kan finde ud af at gøre - kan du hjælpe?
Avatar billede xyborx Nybegynder
18. november 2005 - 01:10 #3
Jeg sad lige og legede lidt for at finde en pæn måde at konvertere frem og tilbage, uafhængigt af nationalitet. Jaja, jeg er måske nok lidt flueknepper, men du vil takke mig den dag du får kunder fra andre lande.. :)

<?php
function floatfromlocale($string)
{
    $locale=localeconv();
    $trans=array(
        $locale['int_curr_symbol']=>'',
        $locale['currency_symbol']=>'',
        $locale['mon_thousands_sep']=>'',
        $locale['mon_decimal_point']=>'.'
    );
    return((float)strtr($string,$trans));
}

header('Content-Type: text/plain');
setlocale(LC_ALL,'da_DK');

$indtastet='25.000,00';
$konverteret=floatfromlocale($indtastet);
$lokalt=money_format('%n',$konverteret);

echo('Indtastet: '.$indtastet."\n");
echo('Konverteret: '.$konverteret."\n");
echo('Lokalt format: '.$lokalt."\n");
?>
Avatar billede straszek Praktikant
28. december 2005 - 13:18 #4
Har løst problemet ved at lave to felter - et til kroner og et til øre
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