Avatar billede blach Nybegynder
27. november 2005 - 23:02 Der er 10 kommentarer og
2 løsninger

DECIMAL laves om til komma

Jeg har en mySQL database med DECIMAL(15,4) og standardværdi 0.0000

Hvordan hiver jeg et tal ud, så der ikke står:
499.9900
Men:
499,99


(Håber det kan gøres i SQL-syntaks, men ellers programmerer jeg PHP)
Avatar billede hmortensen Nybegynder
28. november 2005 - 00:44 #1
Ved ikke om det kan gøres i SQL, men i PHP er den en smal sag:
http://dk2.php.net/number_format
Avatar billede blach Nybegynder
28. november 2005 - 10:28 #2
OK.. Hvordan gør jeg så hvis jeg har:

$tal = "499.9900";

?
Avatar billede muddi Praktikant
28. november 2005 - 19:54 #3
Jeg ville anbefale dig at bruge MySQL's ROUND funktion der tager to parametre. Tallet der skal afrundes og det antal decimaler du vil have afrundet til.

Eks.

SELECT ROUND(499.9900, 2)

Skulle returnere 499.99

I øvrigt bør du ikke bruge gåseøjne omkring tal i php, da de så i stedet opfattes som strenge. Godt nok er php god til at typecaste uden din indblanding, men du risikerer nogen underlige fejl, der er svære et finde/rette, og det vil gøre det svært for dig at lære andre sprog der ikke har automatisk typekonvertering!

Morten
Avatar billede blach Nybegynder
28. november 2005 - 20:50 #4
Ok tak for rådet Morten.. Men hvordan får jeg punktum lavet om til komma?
499.99 --> 499,99
Avatar billede muddi Praktikant
28. november 2005 - 21:09 #5
Jeg havde ikke set at dit problem var decimal separatoren. I så fald er det vanskeligt at løse i MySQL uden at skabe en masse nye problemer, idet du er nødt til at ændre local-indstillingerne. I PHP kan du også løse problemet ved at ændre local-indstillingerne til dansk, men det vil også bare give dig en masse problemer.

Essensen må være at bruge den funktion som hmortensen har anbefalet dig. Husk dog at der ikke skal "" omkring tal.

Morten
Avatar billede blach Nybegynder
28. november 2005 - 22:03 #6
Morten: Gider du ikke komme med et eksempel, synes det er lidt svært ud fra det link...
Avatar billede hmortensen Nybegynder
28. november 2005 - 22:35 #7
Sådan her:
$tal = 499.9900;
echo number_format($tal, 2, ',', '.');
Avatar billede muddi Praktikant
29. november 2005 - 15:53 #8
præcis... du skal dog kun bruge funktionen når du vil vise tallet i browseren. Internt i dit script skal du selvfølgelig bruge punktum som decimal separator! Så hvis du gemmer tallene i en database eller lign. så skal det altså være på den amerikanske måde og ikke den danske!
Avatar billede blach Nybegynder
29. november 2005 - 16:26 #9
Okay tak for hjælpen!
Vil I dele pointene? Eller er det hmortensens...
Avatar billede hmortensen Nybegynder
29. november 2005 - 16:46 #10
Det var så lidt.

Vi kan sagtens dele, muddi fik lige fyldt de ord på jeg ikke havde tid til at skrive ;)
Avatar billede muddi Praktikant
29. november 2005 - 19:14 #11
Nej tak, det er helt ok. Du havde jo faktisk svaret inden jeg blandede mig :)
Avatar billede blach Nybegynder
30. november 2005 - 00:41 #12
OK! Jeg siger mange tak for hjælpen fra jer begge! :)

I lyder til at være nogle hajer til PHP, måske I kan hjælpe her også: http://www.exp.dk/spm/665999
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
Computerworld tilbyder specialiserede kurser i database-management

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