Προς το περιεχόμενο

vb.net number conversion


leukonas

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα,

 

Αντιμετωπίζω ένα πρόβλημα σε κάτι σχετικά απλό.

 

Η γλώσσα που χρησιμοποιώ είναι Visual Basic .net σε Visual Studio 2008 με .net framework 3.5

 

Σε μια φόρμα έχω 3 text box. Στο ένα εισάγεται αριθμός τύπου 120, στο δέυτερο αριθμός τύπου 2.37 και στο τρίτο υπολογίζεται αυτόματα γινόμενο τους.

 

Private Sub praxeis()

 

Dim a As double

Dim b As double

 

a=convert.Convert.ToDouble(textbox1.Text)

b=convert.Convert.ToDouble(textbox2.Text)

 

textbox3.Text=a-b

 

end sub

 

Το πρόβλημα είναι πως το 120 το μετατρέπει σε 12 και δεν δίνει σωστό αποτέλεσμα.Μπορεί κάποιος να με βοηθήσει?

Δημοσ.

Να σημειώσω ότι αν είσαι σε μηχάνημα που είναι σε ελληνικό region (αυτό ισχύει με τους περισσσότερους υπολογιστές στην ελλάδα) και γράψεις 12.4 η vb με τη μετατροπή που κάνεις θα το διαβάσει 124. Θα πρέπει να το γράψεις 12,4 ανεξάρτητα σε ποια γλώσσα είναι το πληκτρολόγιο. Μου φαίνεται πιο πιθανό αυτό από το να διαβάζει το 120 σαν 12.

 

Αν τρέξεις την εφαρμογή με debug τότε θα μπορείς να δείς ακριβώς πως γίνεται η κάθε μετατροπή.

Δημοσ.

Αν είναι το locale το πρόβλημα μπορείς να το ορίσεις στατικά για το thread που κάνει τη μετατροπή

 

>Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

 

(ή όποιο culture θέλεις) έτσι ώστε η μετατροπή να έχει την ίδια συμπεριφορά σε μηχανήματα διαφορετικού locale.

 

Εναλλακτικά, μπορείς να πειραματιστείς με διάφορα Number Formats

http://msdn.microsoft.com/en-us/library/7yd1h1be.aspx (έχει και παραδείγματα).

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...