leukonas Δημοσ. 22 Φεβρουαρίου 2010 Δημοσ. 22 Φεβρουαρίου 2010 Καλησπέρα, Αντιμετωπίζω ένα πρόβλημα σε κάτι σχετικά απλό. Η γλώσσα που χρησιμοποιώ είναι 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 και δεν δίνει σωστό αποτέλεσμα.Μπορεί κάποιος να με βοηθήσει?
virxen75 Δημοσ. 23 Φεβρουαρίου 2010 Δημοσ. 23 Φεβρουαρίου 2010 > TextBox3.Text = CStr(CDbl(TextBox1.Text) * CDbl(TextBox2.Text)) πρόσεξε την διαφορά του . και , για δεκαδικούς αριθμούς
_tasos Δημοσ. 23 Φεβρουαρίου 2010 Δημοσ. 23 Φεβρουαρίου 2010 Να σημειώσω ότι αν είσαι σε μηχάνημα που είναι σε ελληνικό region (αυτό ισχύει με τους περισσσότερους υπολογιστές στην ελλάδα) και γράψεις 12.4 η vb με τη μετατροπή που κάνεις θα το διαβάσει 124. Θα πρέπει να το γράψεις 12,4 ανεξάρτητα σε ποια γλώσσα είναι το πληκτρολόγιο. Μου φαίνεται πιο πιθανό αυτό από το να διαβάζει το 120 σαν 12. Αν τρέξεις την εφαρμογή με debug τότε θα μπορείς να δείς ακριβώς πως γίνεται η κάθε μετατροπή.
bookysmell2004 Δημοσ. 24 Φεβρουαρίου 2010 Δημοσ. 24 Φεβρουαρίου 2010 Αν είναι το locale το πρόβλημα μπορείς να το ορίσεις στατικά για το thread που κάνει τη μετατροπή >Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; (ή όποιο culture θέλεις) έτσι ώστε η μετατροπή να έχει την ίδια συμπεριφορά σε μηχανήματα διαφορετικού locale. Εναλλακτικά, μπορείς να πειραματιστείς με διάφορα Number Formats http://msdn.microsoft.com/en-us/library/7yd1h1be.aspx (έχει και παραδείγματα).
leukonas Δημοσ. 24 Φεβρουαρίου 2010 Μέλος Δημοσ. 24 Φεβρουαρίου 2010 Ευχαριστώ πολύ.Θα πάιξω και με το locale μαλλον ώστε να πάιζει παντού το ίδιο.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.