Avatar billede kane Juniormester
14. august 2004 - 00:47 Der er 17 kommentarer og
2 løsninger

udregning med komma

Jeg har et felt hvor jeg ganger antal med pris
<?php echo $row["Antal_1"]*$row["pris_1"] ; ?>

Antal er 1 og pris er 2550,50. prisen er fint gemt i db som 2550,00 men det hvor jeg ganger står der kun 2550

hvorfor gør den det?
Avatar billede dennismp Nybegynder
14. august 2004 - 00:50 #1
Hvilket felttype har du brugt i databasen? Float? Decimal?

Tallet bør være gemt som 2550.5 (ikke komma)
Avatar billede jakoba Nybegynder
14. august 2004 - 00:53 #2
fordi de fleste andre lande bruger punktum som decimaltegn. du skal skifte kommaet ud med et punktum for at få php til at opfatte det som et tal med decimaler.

noget andet er at du åbenbart gemmer prisen som en steng i et char eller varchar felt i din database. Det ville vær bedre at gemme den i et float felt.

mvh JakobA
Avatar billede Slettet bruger
14. august 2004 - 10:07 #3
Den bedste løsning er allerede nævnt.
Nemlig at ændre til et float felt.

Men en måde at erstatte dit komma med punktum er ved hjælp af ereg_replace.

$pris = str_replace(",", ".", $row['pris_1']);

$pris indeholder nu 2550.50
Avatar billede kane Juniormester
14. august 2004 - 18:22 #4
de er skiftet til float.

Et lillet problerm

Column count doesn't match value count at row 1

sådan ser min gemmer ud. den er lidt lang

mysql_query("INSERT INTO invoice (Id, kunde_1, kunde_2, kunde_3, kunde_4, Antal_1, Antal_2, Antal_3, Antal_4, Antal_5, Antal_6, Antal_7, Antal_8, navn_1, navn_2, navn_3, navn_4, navn_5, navn_6, navn_7, navn_8, pris_1, dato, fakturanr) VALUES ('','".$_POST['kunde_1']."','".$_POST['kunde_2']."','".$_POST['kunde_3']."','".$_POST['kunde_4']."','".$_POST['Antal_1']."','".$_POST['Antal_2']."','".$_POST['Antal_3']."','".$_POST['Antal_4']."','".$_POST['Antal_5']."','".$_POST['Antal_6']."','".$_POST['Antal_7']."','".$_POST['Antal_8']."','".$_POST['navn_1']."','".$_POST['navn_2']."','".$_POST['navn_3']."','".$_POST['navn_4']."','".$_POST['navn_5']."','".$_POST['navn_6']."','".$_POST['navn_7']."','".$_POST['navn_7']."','".$_POST['navn_7']."','".$_POST['pris_1']."', '$dato','$new')") OR DIE (mysql_error());
Avatar billede kane Juniormester
14. august 2004 - 18:23 #5
uhhh 3 med navn_7
Avatar billede kane Juniormester
14. august 2004 - 18:24 #6
det hjalp..............tak :)

smid lidt svar til point
Avatar billede dennismp Nybegynder
14. august 2004 - 22:03 #7
Et svar, helt fra aalborg :-)
Avatar billede Slettet bruger
14. august 2004 - 22:49 #8
Jeg har ikke bidraget med noget, så hold mig udenfor points fordelingen :o)
Avatar billede kane Juniormester
15. august 2004 - 09:38 #9
du kan måske nå det endnu cypermann :)

Når jeg regner momsen ud, kommer der nogle gange 3 decimaler efter . (eks 234.612) Der ville jeg gerne kun have 2.
Avatar billede Slettet bruger
15. august 2004 - 10:20 #10
Well, når du så udskriver momsen kan du blot udskrive den sådan:

echo round($moms, 2);
Avatar billede jakoba Nybegynder
15. august 2004 - 10:20 #11
se: http://dk.php.net/manual/en/function.number-format.php
  <?php echo number_format( $row["Antal_1"]*$row["pris_1"], 2 ); ?>
points til dennismp, han var først.

mvh JakobA
Avatar billede Slettet bruger
15. august 2004 - 10:36 #12
Ja, kun points til dennismp.
Jeg har blot en dårlig vane med at sætte hak ved svar :)
Avatar billede kane Juniormester
15. august 2004 - 12:03 #13
hmmm hvor blev mit indlæg af.

nå jeg skriver igen.

I har alle hjulpet med noget.

Dennismp hjalp med at kunne skrive 2500.50

cyper hjalp med at få min dato fra 13/08/2004 til 13.08.2004

jakoba hjalp med at få 2 decimaler efter min moms.

så I skal alle have point.
Avatar billede kane Juniormester
15. august 2004 - 14:14 #14
nu driller det lige med at få den sidste ting på plads. jeg skal have 2 decimaler og ,. byttet om.

<?php echo number_format $pris = str_replace(",", ".", $row["pris_1"], 2 ); ?>
Avatar billede dennismp Nybegynder
15. august 2004 - 14:18 #15
Hvis det bare skal vises med dansk notation, så prøv:
<?php
setlocale (LC_ALL, 'da_DK.ISO8859-1');
echo number_format( $row["pris_1"], 2 );
?>
Avatar billede kane Juniormester
15. august 2004 - 14:21 #16
det hjalp ikke

2    1,005.25  2,010.50
Avatar billede dennismp Nybegynder
15. august 2004 - 14:24 #17
echo number_format( $row["pris_1"], 2, ',', '.' );
Avatar billede kane Juniormester
15. august 2004 - 14:27 #18
Der er ikke en trusse tør.

nice
Avatar billede kane Juniormester
15. august 2004 - 21:01 #19
et svar jakobe?
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