Βοήθεια πως να καλέσω μεταβλητές στην php

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
driveland
Δημοσιεύσεις: 59
Εγγραφή: 04 Ιούλ 2010 15:40

Βοήθεια πως να καλέσω μεταβλητές στην php

Δημοσίευση από driveland » 10 Απρ 2011 12:20

καλημέρα, 2 μέρες τώρα προσπαθώ να βρω λύση αλλα δεν τα καταφερνω με τα online manual της php.

συνοπτικα το πρόβλημα
μόλις γίνει μια παραγγελία στην ιστοσελίδα , έρχετε ένα email επιβεβαιωσης με τα εξής στοιχεία:
συνολικό κόστος, ($order_subtotal)
κόστος μεταφορικών, ($order_shipping)
έκπτωση, ($order_discount)
και τελικό σύνολο ($order_total)

το πρόβλημα είναι ότι ενώ όλα υπολογιζονται σωστά, μόνο το τελικό σύνολο κανει λαθος στην προσθεση,
δηλαδή αντι για 86,20€ μπορέι να βγάλει 86,27 λογω των πολλων στρογγυλοποιήσεων μάλλον που κάνει στο υπολογισμό της τιμής των προιοντων.
Γιατι δεν υπολογιζει απευθείας το άθροισμα των παραπάνω μεταβλητών που έγραψα,
αλλά κάνει ξανα το άθροισμα των προιοντων ως εξης:

$order_total= round(6.8888*fpa + 6.8888*fpa + 6.8888*fpa, 2);
και οχι ετσι οπως θελω εγω
$order_total= round(6.8888*fpa, 2); + round(6.8888*fpa, 2); + round(6.8888*fpa, 2);...

εψαξα μεσα στα αρχεία να βρω την παραπάνω συνάρτηση και να την αλλάξω αλλα τίποτα...

ερωτηση: αφου στο τελικό email ερχονται σωστά όλα τα στοιχεια τοσο δύκολο είναι να κάνω ξανα μια απλή πρόσθεση όλων των παραπανω μεταβλητών?
δηλαδή order_total= ($order_discount) + ($order_shipping) + ($order_subtotal)

μεσα στο αρχείο tpl.php που ερχετε ως email, τις μεταβλητές αυτές τις καλεί ως <?php echo $order_shipping ?> αλλά τις έχει ήδη υπολογίσει σε άλλο αρχείο εξωτερικό.
εγώ δοκίμασα να κάνω πρόσθεση μεσα στο αρχειο αυτο:

Κώδικας: Επιλογή όλων

<?php
class calculator &#123;
    var $number1 = $order_discount;
    var $number2 = $order_shipping;
    var $number3 = $order_subtotal;

    function add &#40;$a,$b,$c&#41;&#123;
        $s= $a + $b + $c;
        print &#40;"the sum of your numbers&#58; $s"&#41;;
        print &#40;$s&#41;;
    &#125;
&#125;
?>
αλλά οτι και να δοκιμασα πέρνω 0 σαν αποτέλεσμα δηλαδή το $number1 = δεν βρίσκει την μεταβλητη $order_discount; σαν αριθμό.
ή στη χειροτερη Fatal error: Cannot redeclare class calculator...

βάζω αυτό πάλι 0 βγάζει...
<?php
$num1=$_POST['$order_subtotal'];
$num2=$_POST['$order_shipping'];
$sum=$num1 + $num2;

echo "Sum=".$sum." <br>";
?>

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Βοήθεια πως να καλέσω μεταβλητές στην php

Δημοσίευση από pimpogio » 10 Απρ 2011 12:58

οι floating point αριθμοι δεν παιζουνε σωστα στην php
και σε καμμια αλλη γλώσσα προγραμματισμού γιατι
ειναι θεμα μηχανης...
Εχουνε ενα σφαλμα...

Πρεπει να βρεις ειδικη κλασση που να κανει σωστα τους
λογαριασμους αναμεσα σε floating point και αναπαριστα
τους αριθμους σωστα...

η java εχει τον τυπο BigDecimal που λυνει το προβλημα...
ψαξε το αντιστοιχο για php ...
Τελευταία επεξεργασία από το μέλος pimpogio την 10 Απρ 2011 13:03, έχει επεξεργασθεί 1 φορά συνολικά.

driveland
Δημοσιεύσεις: 59
Εγγραφή: 04 Ιούλ 2010 15:40

Βοήθεια πως να καλέσω μεταβλητές στην php

Δημοσίευση από driveland » 10 Απρ 2011 13:02

μια μικρή βοηθεια τουλαχιστον τι να κανω search...

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Βοήθεια πως να καλέσω μεταβλητές στην php

Δημοσίευση από pimpogio » 10 Απρ 2011 14:37

ψαξε ας πουμε BigDecimal for php

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης