<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Αρχές προγραμματισμού</title><link>https://www.dotnetzone.gr:443/cs/forums/72/ShowForum.aspx</link><description>Αναρωτιέστε τι σημαίνει object; Class; Inheritance; Design pattern; Την απάντηση μπορείτε να την βρείτε εδώ!</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Πως να κανω ενα string να ειναι single?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47735.aspx</link><pubDate>Mon, 19 Jan 2009 07:39:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47735</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47735.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=72&amp;PostID=47735</wfw:commentRss><description>&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;tsomos:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;οκ...το βρηκα ...&lt;BR&gt;MsgBox(Mid$(Format(1.2, "0.0"), 2, 1))&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Δεν μπορώ να πω ότι ο παραπάνω κώδικας είναι ο κατάλληλος για να πετύχεις αυτό που θέλεις. Ακόμα και αν χρειαζόσουν να ξέρεις ποιό σύμβολο χρησιμοποιείται για δεκαδικό, που ΔΕΝ&amp;nbsp; το χρειάζεσαι, η χρήση μεθόδων της VB6 σε κώδικα .NET μόνο μπελάδες θα σου δημιουργήσει. Καταρχήν, χρησιμοποιείς πολύ περισσότερο κώδικα για να κάνεις μία απλή δουλειά, μετά χρησιμοποιείς μεθόδους με γνωστά προβλήματα σε non-US υπολογιστές.&amp;nbsp; Ας τα πάρουμε από την αρχή.&lt;/P&gt;
&lt;P&gt;ΔΕΝ χρειάζεσαι το δεκαδικό - αν προσπαθήσεις να το "καρφώσεις" μάλιστα θα έχεις διαπράξει ένα από τα χειρότερα σφάλματα στο .NET . Το .NET καταλαβαίνει αυτόματα ποιό είναι το locale του χρήστη κι έτσι κάνει σωστά τις μετατροπές, χρησιμοποιώντας τα δεκαδικά που έχουν οριστεί στα Regional Settings. Μπορείς άνετα να αλλάξεις τη γλώσσα μίας εφαρμογής αλλάζοντας το CurrentCulture του Thread της εφαρμογής αλλά και αυτό συνήθως δεν χρειάζεται. Σε ένα PC με ελληνικά Windows, το .NET θα χρησιμοποιήσει αυτόματα το , ως δεκαδικό. Σε PC με αγγλικά Windows, το .&lt;/P&gt;
&lt;P&gt;Δυστυχώς, πολλοί προγραμματιστές προσπαθούν να "καρφώσουν" το δεκαδικό για να αντιμετωπίσουν άλλα προβλήματα στον κώδικα τους. Για παράδειγμα, αν κάποιος χρησιμοποιεί χύμα SQL αντί για sql statements με παραμέτρους, θα έχει πρόβλημα αν ο αριθμός έχει , για δεκαδικό. Αντί όμως να διορθώσουν τον κώδικα τους, πολλοί προγραμματιστές θεωρούν ότι το πρόβλημα είναι του .NET και προσπαθούν να .... το διορθώσουν. Μία περιττή διόρθωση όμως συνήθως κάνει ζημιά, την οποία οι προγραμματιστές αυτοί προσπαθούν να διορθώσουν προσθέτωντας επιπλέον μυστήριο κώδικα. Έχοντας κληρονομήσει τέτοιο κώδικα στο παρελθόν, μπορώ να σε διαβεβαιώσω ότι η μόνη σωτηρία είναι να τον σβήσεις όλον. Γι αυτό και θεωρώ το κάρφωμα των δεκαδικών ως ένα από τα χειρότερα σφάλματα.&lt;/P&gt;
&lt;P&gt;Σε αυτό τον καταστροφικό κώδικα έχω συναντήσει και προσπάθειες να βρεθεί το δεκαδικό με κώδικα παρόμοιο με αυτό που έδωσες. Τέτοιος κώδικας όμως ήταν περιττός ακόμα και στην VB6, γιατί μπορούσες πάντα να πάρεις το δεκαδικό μέσα από το κατάλληλο Win32 function. Στο .NET μπορείς να πάρεις όλες τις αντίστοιχες πληροφορίες μέσω του CultureInfo class και συγκεκριμένα του NumberFormat property. Μπορείς πχ. να βρεις ποιό είναι το δεκαδικό για την τρέχουσα εφαρμογή με το CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator ή της CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator. Βλέπεις, στα regional settings ο χρήστης μπορεί να ορίσει διαφορετικό format για χρηματικά ποσά και διαφορετικό για αριθμούς. Το .NET χρησιμοποιεί αυτόματα αυτά τα σύμβολα όταν μετατρέπει αριθμούς σε κείμενα και το αντίστροφο.&lt;/P&gt;
&lt;P&gt;Τέλος, ο τρόπος με τον οποίο μετατρέπεις αριθμό σε κείμενο στο .NET είναι είτε η ToString() είτε η String.Format. Η Format που χρησιμοποίησες υπάρχει μόνο για συμβατότητα προς τα πίσω με τη VB6 και κληρονομεί όλα τα κουσούρια της. Αν θέλεις π.χ. να μετατρέψεις ένα αριθμό σε string, μπορείς να γράψεις String.Format("These are numbers {0} {1}",3.45,6.89) . Αν όμως οι αριθμοί είναι χρηματικά ποσά μπορείς να γράψεις String.Format("These are&amp;nbsp;currency values&amp;nbsp;{0:C} {1:C}",3.45,6.89) . Μπορείς να κάνεις και άλλους συνδυασμούς όπως να ορίσεις ακριβώς το συνολικό μήκος του string, τον αριθμό των δεκαδικών, το alignment κλπ.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Πως να κανω ενα string να ειναι single?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47718.aspx</link><pubDate>Sun, 18 Jan 2009 09:37:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47718</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47718.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=72&amp;PostID=47718</wfw:commentRss><description>&lt;P&gt;Αφενός, γιατί χρειάζεσαι τον χαρακτήρα που υποδηλώνει τα δεκαδικά μέρη; Ενδεχομένως να σου χρησιμεύει κάποια από τις εναλλακτικές συντάξεις της Single.Parse.&lt;/P&gt;
&lt;P&gt;Αφετέρου, βλέπω ότι στον κώδικά σου χρησιμοποιείς το στυλ της VB6. Μιας και είμαστε στα πρώτα βήματα, μια συμβουλή είναι να ξεχάσεις το MsgBox - είναι MessageBox.Show() πλέον -&amp;nbsp;και το Mid$ - είναι String.Substring. Γένικά, ακολουθώντας τη σύνταξη της VB6 δεν μπορείς να ανακαλύψεις τις ομορφιές του .NET Framework. Θα εκπλαγείς με το τι μπορείς να κάνεις αν&amp;nbsp;πληκτρολογήσεις&amp;nbsp;"string"&amp;nbsp;και πατήσεις κατόπιν την τελεία. Αν&amp;nbsp;συνηθίσεις και μπεις σε αυτή&amp;nbsp;λογική, μετά θα "υποψιάζεσαι" το πως θα πρέπει να "δουλεύει" κάτι και&amp;nbsp;θα το βρίσκεις εύκολα χωρίς καν να το έχεις ξαναχρησιμοποιήσει.&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Πως να κανω ενα string να ειναι single?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47707.aspx</link><pubDate>Sun, 18 Jan 2009 00:23:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47707</guid><dc:creator>tsomos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47707.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=72&amp;PostID=47707</wfw:commentRss><description>οκ...το βρηκα ...&lt;br&gt;MsgBox(Mid$(Format(1.2, "0.0"), 2, 1))&lt;br&gt;</description></item><item><title>Απ: Πως να κανω ενα string να ειναι single?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47706.aspx</link><pubDate>Sun, 18 Jan 2009 00:11:10 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47706</guid><dc:creator>tsomos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47706.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=72&amp;PostID=47706</wfw:commentRss><description>Και κατι άλλο πέρα απο αυτο. Στα αγγλικα(ηπα) είναι της μορφής 453.0901 ενώ στα ελληνικά είναι 453,0901. Αυτο εξαρταται απο τα regional setting το τι εχει ορισει ο καθε ενας ως decimal symbol.&lt;br&gt;Πως μπορω να δω ποιο είναι το decimal symbol(. ή , ή οτιδηποτε αλλο) που είναι ορισμένο στο ΛΣ; Υπαρχει καποια function που σου λέι οτι το decimal symbol είναι το τάδε;&lt;br&gt;</description></item><item><title>Απ: Πως να κανω ενα string να ειναι single?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47687.aspx</link><pubDate>Fri, 16 Jan 2009 21:56:37 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47687</guid><dc:creator>tsomos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47687.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=72&amp;PostID=47687</wfw:commentRss><description>Ευχαριστω...λυθηκε&lt;br&gt;</description></item><item><title>Απ: Πως να κανω ενα string να ειναι single?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47686.aspx</link><pubDate>Fri, 16 Jan 2009 21:51:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47686</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47686.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=72&amp;PostID=47686</wfw:commentRss><description>Η CSng υπάρχει μόνο στη VB και ουσιαστικά είναι κατάλοιπο της VB 6, καθώς&amp;nbsp; όλοι οι αριθμητικοί τύποι έχουν την μέθοδο Parse η οποία κάνει αυτό που σου έγραψε ο Μανώλης. Μετατρέπει δηλαδή το string στον τύπο που σε ενδιαφέρει. Θα πρέπει να επιλέξεις με προσοχή τί τύπο θέλεις να χρησιμοποιήσεις όμως. Οι Single και Double είναι floating point και αποθηκεύουν προσεγγιστικά την τιμή που τους δίνεις ενώ ο Decimal που δεν είναι, την αποθηκεύει ακριβώς. &lt;br&gt;</description></item><item><title>Απ: Πως να κανω ενα string να ειναι single?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47685.aspx</link><pubDate>Fri, 16 Jan 2009 21:41:35 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47685</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47685.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=72&amp;PostID=47685</wfw:commentRss><description>&lt;P&gt;Δες εδώ: &lt;A href="http://msdn.microsoft.com/en-us/library/system.single.parse.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.single.parse.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Πως να κανω ενα string να ειναι single?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47683.aspx</link><pubDate>Fri, 16 Jan 2009 21:13:01 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47683</guid><dc:creator>tsomos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47683.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=72&amp;PostID=47683</wfw:commentRss><description>Για...&lt;br&gt;εχω ενα αρχει που εχει μεσα την τιμη πχ, "-1332,3434" ή "13344.45052". Τη διαβάζω απο το αρχειο σαν string.Μεχρι εδω οκ.&lt;br&gt;Tωρα θέλω να κάνω την τιμή αυτή να είναι single, και όταν κάνω csng(variable) τότε έχω την εξής τιμη:&lt;br&gt;1334445052.0 &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-3.gif" alt="Surprise" /&gt;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-3.gif" alt="Surprise" /&gt;&lt;br&gt;Αν το κανω int τότε χάνω τα δεκαδικά ψηφία. Εγω θέλω να είναι δεκαδικός αριθμός. Μήπως υπάρχει τρόπος να σεταρω το ακεραιο και το δεκαδικο ξεχωριστα ;&lt;br&gt;&lt;br&gt;Το προβημα μου ειναι οτι απο string "13344.45052" γίνεται αρθιμος 1334445052.0 ενώ θα ήθελα να γίνεται αριθμος 13344,45052...&lt;br&gt;Τι να κανω?&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-7.gif" alt="Tongue Tied" /&gt;&lt;br&gt;υγ:μιλαμε για vb&lt;br&gt;&lt;br&gt;</description></item></channel></rss>