perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 27
Click for quality!




11.02.2012 / 13:01

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Javascript - Clientprogrammierung zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragBestellformular: Rechenergebnisse runden
Seitenanfang
Hallo,
habe ein kleines Bestellformular, in dem der Benutzer eine Anzahl eines Produktes eingeben kann und dann der Preis ohne und inkl. MwST angezeigt wird. Ausserdem wird der Gesamtbetrag + Versand + Steueren errechnet.
Leider gibt er mir manchmal Zahlen aus wie 3,3499999999...
Nun möchte ich diese auf Dezimalstellen runden.

Hier einmal der wesentliche Teil des Scriptes:

var Itemsteuer = 116 / 100;
var Versandsteuer = 116 / 100;
function Total() {
var tot = 0;
var totalall = 0;
Versandkostenx = 4.90;
var Versandkosten = Versandkostenx;
Versandkosten = 0;
tot += (75.00 * document.order.Anzahl_Artikel7511.value);
tot += (34.50 * document.order.Anzahl_Artikel4041.value);
tot += (229.00 * document.order.Anzahl_Artikel9226.value);
tot += (8.50 * document.order.Anzahl_Artikel1161.value);
tot += (1.45 * document.order.Anzahl_Artikel1193.value);
tot += (3.25 * document.order.Anzahl_Artikel2611.value);
tot += (1125.00 * document.order.Anzahl_Artikel60887.value);
tot += (629.00 * document.order.Anzahl_Artikel60898.value);

document.order.Gesamtbestellung.value = tot;
if (tot == 0) {Versandkosten == 0}
else {Versandkosten = Versandkostenx};
document.order.Versandkosten.value = Versandkosten;

Bestellsteuerbetrag = (Itemsteuer * tot) - tot;
Versandkostensteuer = (Versandsteuer * Versandkosten) - Versandkosten;
AusgewSteuer = Bestellsteuerbetrag + Versandkostensteuer;
document.order.AusgewSteuer.value = AusgewSteuer;
document.order.Rechnungsbetrag.value = AusgewSteuer + tot + Versandkosten;
};

function UpdateBetrag(number, Einzelkosten, Inklusivbetrag) {
qtyname = "Anzahl_Artikel" + number;
costname = "Betrag" + number;
Steuername = "Inklusivbetrag" + number;
var q = document.order[qtyname].value;
document.order[costname].value = q * Einzelkosten;
document.order[Steuername].value = q * Einzelkosten * Itemsteuer;
Total();
}

Hier ein Beispiel für die Artikelfelder:

<input type="TEXT" name="Anzahl_Artikel7511" value="0" size=4 onchange="UpdateBetrag(7511, 75.00);">
<input type="TEXT" name="Betrag7511" size=6 disabled>
<input type="TEXT" name="Inklusivbetrag7511" size=6 disabled>

Und dann noch folgende Felder:

<input type="TEXT" name="Gesamtbestellung">
<input type="TEXT" name="Versandkosten">
<input type="TEXT" name="AusgewSteuer">
<input type="TEXT" name="Rechnungsbetrag">

Ich hab schon etwas mit Math.round() rumprobiert, aber es will einfach nicht klappen. Vielleicht hat jemand ne Hilfestellung?

Viele Grüsse,
Nicole

Datum: 24.10.2006-13:03

Beitragre: Bestellformular: Rechenergebnisse runden
Seitenanfang
Einfach die Perlfunktion printf verwenden.

Beispiel:

$wert = 34.9999999
printf("%.2f", $wert) -> 34.99

Hat aber nichts mit runden zu tun, es werden lediglich die angegebenen Stellen nach dem Komma ausgegeben .2f . Möchtest du 4 STellen, dann .4f . Das f steht für Float.

Möchtest du den formatierten Wert nicht ausgeben sondern an eine Variable zuweisen wollen, geht das ganze mit der Perlfunktion sprintf.

Beispiel:
$wert = 47.234422999

$anderer_wert = sprintf("%.2f", $wert );

$anderer_wert -> 47.23

Ich hoffe das hilft dir weiter.

Grüße
Mario

Datum: 26.10.2006-22:32

Beitragre: Bestellformular: Rechenergebnisse runden
Seitenanfang
Ähm sorry. Man sollte wohl vorher guggen in welchem Forum die Frage gestellt wird. Meine Antwort bitte streichen.

Wie konnte ich nur JavaScript mit Perl verwechseln. Ich sollte schlafen gehen. ;)

Grüsse
Mario

Datum: 26.10.2006-22:50

-






-
-