Προφανώς έχει μπερδευτεί από το ότι τα δύο σου νούμερα έχουν διαφορετικό πρόσημο. Γενικά, ο τύπος είναι:
100 * (τκ-ακ)/ακ
τκ = τελική κατάσταση, ακ = αρχική κατάσταση.
Στην περίπτωσή σου, όμως, γίνεται:
sign(ακ) * 100 * (τκ-ακ)/ακ, όπου sign(ακ) το πρόσημο του αριθμού ακ. Δες τα ακόλουθα παραδείγματα με αυτόν τον τύπο:
ακ τκ μετ(%)
-100 -80 20
-80 -100 -25
-100 100 200
100 -100 -200
100 80 -20
80 100 25
Επίσης, από το παραπάνω παράδειγμα φαίνεται περίτρανα ότι ποτέ δεν κάνουμε αλγεβρικές πράξεις μεταξύ ποσοστών. Αν από το 100 πάμε στο 80, τότε η μείωση είναι 20%. Αν, όμως, από το 80 πάμε στο 100, η αύξηση είναι 25%. Άρα το ότι ένα μέγεθος αυξήθηκε κατά 20% και στη συνέχεια μειώθηκε κατά 20%, αυτό δε σημαίνει ότι επανήλθε στην αρχική του τιμή.
Προσοχή όταν η αρχική κατάσταση είναι 0. Τότε προκύπτει απροσδιοριστία. Αν θες τη γνώμη μου, παίζεις επικίνδυνα παιχνίδια. Όσον αφορά στο μέγεθος που μετράς, μείνε είτε στο θετικό πρόσημο είτε στο αρνητικό και εφάρμοσε τον πρώτο τύπο. Θεώρησε μια τιμή βάσης, π.χ. 1000, σαν μηδέν και χρησιμοποίησέ την για να υπολογίζεις τις μεταβολές. Βεβαίως, αυτό θα έχει επίπτωση στα ποσοστά που υπολογίζεις, αλλά θα είσαι πιο ασφαλής. Αλήθεια, αν ο χρηματιστηριακός δείκτης πέσει στο μηδέν και μετά ανέβει την επόμενη ημέρα, ποια θα είναι η ποσοστιαία του μεταβολή; Πολύ θα ήθελα μια απάντηση σ' αυτή την ερώτηση από συναδέλφους που γράφουν τέτοιου είδους λογισμικό.
Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!