Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

using ',' in double values

Îåêßíçóå áðü ôï ìÝëïò PsySpooky. Τελευταία δημοσίευση από το μέλος gspiros στις 27-06-2007, 21:29. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  23-05-2007, 13:40 32127

    using ',' in double values

    καλησπέρα

    κανω απλές μαθηματικές πράξεις στο πρόγραμμα μου και βγάζω μια τιμή π.χ 98356

    και την εμφανίζω σε ένα textbox

    εγώ θέλω αυτήν την τιμή να την εμφανίζω έτσι 98,356 ή 983,56

    πώς γίνετε αυτό?

    CC Calculator -newest version: 1.6-

    Επισκευθήτε το blog μου :)

  •  23-05-2007, 14:06 32132 σε απάντηση της 32127

    Απ: using ',' in double values

    Μάλλον θα πρέπει να εξηγήσεις καλύτερα τί ζητάς, γιατί θα πρέπει να μαντέψει κανείς τί ζητάς. Αν ο αριθμός δεν έχει δεκαδικά ψηφία, τί θέλεις να δείξεις? Μήπως θέλεις να δείξεις χιλιάδες ή εκατοντάδες? Τότε μπορείς απλά να διαιρέσεις τον αριθμό πριν τον δείξεις.

    Θέλεις να αποφύγεις τη διαίρεση και να δείξεις εκατοντάδες ή χιλιάδες χρησιμοποιώντας ένα ειδικό format? Αν κοιτάξεις στο documentation για τα format strings και συγκεκριμένα τη σελίδα "Custom Numeric Format Strings" θα δείς ότι αν ο χαρακτήρας των χιλιάδων εμφανίζεται στο τέλος, η τιμή διαιρείται με το 1000. Για παράδειγμα, το format string "#,0,," μετατρέπει το 1 δις σε 1,000 (αγγλικό locale). Καθώς μάλιστα το .NET καταλαβαίνει από locales, το διαχωριστικό που θα χρησιμοποιηθεί θα είναι το κατάλληλο για τη γλώσσα του χρήστη (, για τα αγγλικά, . για τα ελληνικά). Αν πειραματιστείς λίγο με το format string μάλλον θα καταφέρεις αυτό που θέλεις. Διαίρεση με εκατοντάδες πάντως, δεν μπορείς να κάνεις με αυτό τον τρόπο.

    Θέλεις να δείξεις ντε και καλά το ',' ακόμα και αν ο χρήστης έχει επιλέξει αγγλικά settings? Κακώς. Ο χρήστης έχει επιλέξει αγγλικά γιατί θέλει αγγλικά. Το .NET Framework καταλαβαίνει τί locale έχει επιλέξει ο χρήστης και κάνει το ανάλογο format όταν δείχνει αριθμούς και parsing όταν τους διαβάζει από ένα textbox. Ακόμα και η υποδιαστολή του αριθμητικού πληκτρολογίου δουλεύει διαφορετικά ανάλογα με τα regional settings. Αν "καρφώσεις" το locale θα πρέπει μετά να κάνεις χειροκίνητα όλες τις μετατροπές οι οποίες γίνονταν αυτόματα μέχρι τότε.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  23-05-2007, 14:13 32134 σε απάντηση της 32127

    Απ: using ',' in double values

    Ποιο ακριβώς είναι το πρόβλημα σου; Αν θέλεις να διαιρέσεις με το 100, απλά διαίρεσε με το 100 και θα βγει σωστά στο TextBox. Αν θέλεις να αλλάξεις την τελεία που βγαίνει σε κόμμα, τότε μπορείς να κάνεις χρήση της replace(OldChar As Char, NewChar As Char).

    π.χ.

    Dim myInt As Integer

    myInt = 123456
    TextBox1.Text = (myInt / 100).ToString.Replace(".", ",")



    Βέβαια, αν θέλεις να κάνεις πράξεις με την τιμή που υπάρχει στο textbox πρέπει πάλι να γυρίσεις το κόμμα σε τελεία.



    Τάσος Καραγιάννης

    Baby debugging steps...
  •  23-05-2007, 15:17 32142 σε απάντηση της 32134

    Απ: using ',' in double values

    Τάσο, αυτό που προτείνεις θα δουλέψει μόνο αν ο χρήστης έχει ελληνικό locale. Αντί να βάζεις καρφωτά το σύμβολο των δεκαδικών και των χιλιάδων μπορείς να τα βρεις από την κλάση CultureInfo. Όπως και να έχει όμως, δεν είναι καλή ιδέα να αλλάζεις τα σύμβολα.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  23-05-2007, 15:23 32144 σε απάντηση της 32142

    Απ: using ',' in double values

    Ναι, έχεις δίκιο. Η αλήθεια είναι πως δεν είχα υπόψην μου τα όσα αναφέρεις. Θα είμαι πιο προσεκτικός σε επόμενες δημοσιεύσεις μου.
    Τάσος Καραγιάννης

    Baby debugging steps...
  •  23-05-2007, 20:44 32166 σε απάντηση της 32144

    Απ: using ',' in double values

    βασικά να σας δώσω μια σύντομη περιγραφή για το πρόγραμμα μου.

    Το πρόγραμμα υπολογίζει κυβικά μηχανής και το έφτιαξα για το honda-moto.gr ένα site που ασχολήτε με μηχανάκια

    στο πρόγραμμα υπάρχουν 2 textbox, στα οποία δείνεις τα χιλιοστά του πιστονιού και την διαδρομή

    (τώρα αμφιβάλω αν καταλαβένετε γρι απο ότι λέω γιατί είμαστε και σε forum προγραμματισμού :P )

    τώρα αναλόγος με τι θα έχει δώσει ο χρήστης τα κυβικά που θα βγουν μπορεί να ειναι 92 κόμα κάτι

    και το πρόγραμμα  τα δείχνει 92123, μπορεί όμως να είναι και 125 κομα κάτι τα κυβικά και το πρόγραμμα τα δείχνει π.χ 125456

    ενώ θέλω να τα βγάζει με την μορφή 125,456 ή 92.123.

    στην περίπτοση που το πρόγραμμα είταν για πάνω απο 100κυβικά , απλά θα διερούσα τα κυβικά με το 1000, και θα μου έδειχνε 125,456 ι κάτι αντήστιχο,

    όμως δεν θέλω αυτό θέλω να βγάζει και τα κυβικά κάτω απο 100.

    λογικά θέλω κάτι τέτοιο :

    if  kyvika < 100
    {
    //dierese kyvika me to 1000
    }
    else if kyvika > 100
    {
    //dierese kyvika me to 100
    }

    απλά ένα παράδηγμα

    CC Calculator -newest version: 1.6-

    Επισκευθήτε το blog μου :)

  •  23-05-2007, 21:55 32171 σε απάντηση της 32166

    Απ: using ',' in double values

    Και γιατί δεν κάνεις τη διαίρεση που περιγράφεις?


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  27-06-2007, 21:29 33231 σε απάντηση της 32166

    Απ: using ',' in double values

    Δεν καταλαβαίνω γιατί πρέπει να διαιρέσεις με διαφορετικό αριθμό στις 2 περιπτώσεις...
    Πώς προέκειψε αυτή η οριακή τιμή 100, όπου θα πρέπει να διαιρείς με διαφορετικούς αριθμούς αναλόγως αν βρίσκεται πάνω ή κάτω από αυτήν την τιμή???

    Στα παραδείγματα πάντως που μας έχει δώσει, αν διαιρέσεις (και τα 2) με 1000, θα προκύψουν τα αποτελέσματα που θέλεις.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems