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?
Annonceindlæg fra QNAP
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)
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
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
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());
14. august 2004 - 18:23
#5
uhhh 3 med navn_7
14. august 2004 - 18:24
#6
det hjalp..............tak :) smid lidt svar til point
14. august 2004 - 22:03
#7
Et svar, helt fra aalborg :-)
Slettet bruger
14. august 2004 - 22:49
#8
Jeg har ikke bidraget med noget, så hold mig udenfor points fordelingen :o)
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.
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);
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 :)
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.
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 ); ?>
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 ); ?>
15. august 2004 - 14:21
#16
det hjalp ikke 2 1,005.25 2,010.50
15. august 2004 - 14:24
#17
echo number_format( $row["pris_1"], 2, ',', '.' );
15. august 2004 - 14:27
#18
Der er ikke en trusse tør. nice
15. august 2004 - 21:01
#19
et svar jakobe?
Vi tilbyder markedets bedste kurser inden for webudvikling