freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Κάνοντας δεκαδικές πράξεις στη C Sharp στο visual studio 2013


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » dot Net και Visual Studio
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [8 Μηνύματα]      Bookmarks Tags: studio Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
Mpouloukos


Μέλος από: 12 Ιουλ 2009
Μηνύματα: 9

View users profile
ΜήνυμαΣτις: 17 Δεκ 2013 17:42    Θέμα: Κάνοντας δεκαδικές πράξεις στη C Sharp στο visual studio 2013
Περιγραφή θέματος: Μη εμφανιση της υποδιαστολης
Απάντηση με παράθεση  Mark this post and the followings unread

Καλησπέρα παιδιά.Φτιάχνω στο Visual Studio 2013 ένα Calculator σε C Sharp και θέλω τα φώτα σας αν είναι εφικτό.
Όταν κάνω οποιαδήποτε πράξη ΧΩΡΙΣ δεκαδικό την κάνει φυσιολογικά. Αν προσπαθήσω να κάνω πράξη του τύπου 3,5 + 3,5 μου βγάζει σαν αποτέλεσμα 70,ενώ αν για παράδειγμα κάνω διαίρεση του τύπου 9 / 6 βγάζει αποτέλεσμα 1,5 ΜΕ την υποδιαστολή στην θέση της.Σαν κώδικα,έχω βάλει να κάνει Convert.ToDecimal όλους τους αριθμούς την ώρα που πατας το = για να κάνει την πράξη αλλά παρόλα αυτά,δεν έχω αποτέλεσμα...
Αν χρειάζεται,μπορώ να σας παραθέσω όλο τον κώδικα που έχω γράψει,καθώς κ ένα screenshot του πως είναι το calculator μου.

Κάθε βοήθεια ευπρόσδεκτη,κ αν χρειάζεστε περαιτέρω πληροφορίες,απλά πείτε μου.
xultimatex
Honorary Member

Μέλος από: 26 Ιουλ 2003
Μηνύματα: 256+
Περιοχή: Ξάνθη
View users profile
facebook 
ΜήνυμαΣτις: 17 Δεκ 2013 17:55    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Καλύτερα να δώσεις και τον κώδικα γιατί, τουλαχιστον εγώ, δε μπορώ να καταλάβω έτσι τί μπορεί να συμβαίνει...

_________________
Just an arrow? Αν προσπαθείς πολύ για να πετύχεις κάτι, ίσως το κάνεις με λάθος τρόπο...
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 17 Δεκ 2013 19:02    Θέμα: Re: Κάνοντας δεκαδικές πράξεις στη C Sharp στο visual studio 2013
Περιγραφή θέματος: Μη εμφανιση της υποδιαστολης
Απάντηση με παράθεση  Mark this post and the followings unread

Mpouloukos ανέφερε:
Αν προσπαθήσω να κάνω πράξη του τύπου 3,5 + 3,5 μου βγάζει σαν αποτέλεσμα 70,ενώ αν για παράδειγμα κάνω διαίρεση του τύπου 9 / 6 βγάζει αποτέλεσμα 1,5 ΜΕ την υποδιαστολή στην θέση της.


Για δοκίμασε να κάνεις 3.5 + 3.5 τι βγάζει.
Mpouloukos


Μέλος από: 12 Ιουλ 2009
Μηνύματα: 9

View users profile
ΜήνυμαΣτις: 20 Δεκ 2013 14:51    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Λοιπόν,το πρόβλημα το βρήκα και είναι τόσο αστείο που θα κλάψω....
Θα σας παραθέσω τον κώδικα και θα σας πω που έκανα το λάθος.

κώδικας:

f (textBox1.Text.Contains(","))
            {
                return;
            }
            else
            {
                textBox1.Text = textBox1.Text + ",";
            }
        }


Αντί για το κόμμα,είχα βάλει τελεία,αυτή που έχει πάνω στο NumPad.Η λογική μου είπε ότι εάν έβαζα την υποδιαστολή από το NumPad όλα θα ήταν καλά,αλλά το visual studio αποφάσισε ότι είναι μία απλή τελεία και όχι υποδιαστολή και ας έβαλα στην πρόσθεση τον εξής κώδικα
κώδικας:


if (plus)
            {
                decimal deci = Convert.ToDecimal(textBox1.Tag) + Convert.ToDecimal(textBox1.Text);
            }

τώρα ότι και να πω.....είναι ακατάλληλο για το forum.Ευχαριστώ πάντως που ενδιαφερθήκατε και μου απαντήσατε,το εκτιμώ ιδιαίτερα
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 20 Δεκ 2013 15:09    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ίσως είναι καλύτερα να κάνεις convert σε decimal ορίζοντας συγκεκριμένο culture. Π.χ.

κώδικας:
static void Main( string[] args )
{
    decimal dec;
    string str = "1.234,56";
    decimal.TryParse(str, NumberStyles.Number, CultureInfo.GetCultureInfo("el-GR"), out dec); //OK (1234.56)
    decimal.TryParse(str, NumberStyles.Number, CultureInfo.GetCultureInfo("en-US"), out dec); //FAIL
    str = "1,234.56";
    decimal.TryParse(str, NumberStyles.Number, CultureInfo.GetCultureInfo("el-GR"), out dec); //FAIL
    decimal.TryParse(str, NumberStyles.Number, CultureInfo.GetCultureInfo("en-US"), out dec); //OK (1234.56)
}
cpulse
Script Master

Μέλος από: 21 Μαρ 2006
Βοηθήματα: 8
Νέα: 1
Scripts: 3
Μηνύματα: 256+

Περιοχή: Αθήνα village
View users profile Visit posters website
ΜήνυμαΣτις: 20 Δεκ 2013 23:14    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Γενικά πάντως η C# δεν το χει με τα casts. Όταν κάνεις πράξεις ανάμικτα integers και floats παίρνεις ό,τι να ναι αποτελέσματα. Πρέπει πρώτα να τα κάνεις όλα cast σε float χειροκίνητα.

_________________
Imagine Creative Pulse
Mpouloukos


Μέλος από: 12 Ιουλ 2009
Μηνύματα: 9

View users profile
ΜήνυμαΣτις: 23 Δεκ 2013 14:24    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Δηλαδή πιστεύετε οτι με το να τα κάνω bool,θα υπάρχει θέμα?
Αυτή τη στιγμή για να μπορώ να κάνω τις πράξεις μου,έχω χρησιμοποιήσει τον εξής τρόπο:
κώδικας:

        bool plus = false;
        bool minus = false;
        bool multiply = false;
        bool divide = false;
        bool equal = false;


Έτσι,όταν πατάω το ίσον, το equal αλλάζει σε true και ξεκινάνε οι πράξεις.
Τώρα απλά,με την αλλαγή του κόμματος,όταν κάνω 3,5+3,5 μου βγάζει σαν αποτέλεσμα 7,0 οπότε το πρόβλημα λύθηκε.

Τώρα ένα άλλο θεματάκι που έχω.Θέλω να προσθέσω τις εξής λειτουργείες

    Λογαριθμο
    υψωση σε δύναμη
    Τετραγωνικη ρίζα


αλλά δεν ξέρω πως να γράψω κώδικα για αυτά.Δοκίμασα με το Power και με το σύμβολο ^ γράφωντας τον εξής κώδικα
κώδικας:

bool power = false;


if (power)
            {
                float dec = (textBox1.Tag) ^ (textBox1.Text);
                textBox1.Text = dec.ToString();
            }

αλλά μου βγάζει ένα error που λέει "Operator '^' cannot be applied to operands of type 'object' and 'string' "

Έχω αρχίσει να πιστεύω ότι πρέπει να σας εναποθέσω όλον τον κώδικα για να μου πείτε που έχω κάνει μαλακία....
cpulse
Script Master

Μέλος από: 21 Μαρ 2006
Βοηθήματα: 8
Νέα: 1
Scripts: 3
Μηνύματα: 256+

Περιοχή: Αθήνα village
View users profile Visit posters website
ΜήνυμαΣτις: 23 Δεκ 2013 16:36    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Λογικό δεν είναι; Άμα είναι string πως θα κάνει μαθηματικές πράξεις. Δες τι έγραψε λίγο πιο πάνω ο dva_dev για να μετατρέψεις το string σε decimal.

_________________
Imagine Creative Pulse
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [8 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » dot Net και Visual Studio


Σχετικά θέματα
 Θέματα   Απ/σεις   Αποστολέας   Τελευταίο μήνυμα 
Form Visual Basic & Βάση Δεδομένων Access 1 TsikalidisAlex 29 Σεπ 2015 06:39
Intefix Εμφάνιση τελευταίου μηνύματος
Visual Basic 0 TsikalidisAlex 27 Ιουλ 2015 18:28
TsikalidisAlex Εμφάνιση τελευταίου μηνύματος
 
Τώρα είναι 28 Απρ 2017 15:56 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos