Τί εννοείς δεν τους δέχεται? Ο μόνος τρόπος να τους δώσεις είναι με τελεία. Αν κάτι δεν σου δουλεύει θα πρέπει πάντα να κοιτάζεις τί λέει το μήνυμα λάθους και να μας το λες. Διαφορετικά δεν πρόκειται να βγάλει κανείς άκρη, ειδικά όταν από την ερώτηση δεν βγαίνει συμπέρασμα.
Ευτυχώς εδώ μιλάμε για μία και μόνο γραμμή κώδικα, η οποία γυρίζει εντελώς ξεκάθαρο μήνυμα λάθους, το οποίο μάλιστα σου λέει και πως να το διορθώσεις! Αν αντικαταστήσω τα κόμματα με τελείες ( float[] data = new float[] {34.5 , 34.6 , 23.5}; ) θα πάρω το παρακάτω μήνυμα λάθους, το οποίο και μου λέει τί συμβαίνει, και πως να το διορθώσω:
Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix to create a literal of this type
Αυτό που συμβαίνει είναι το εξής. Αν δώσω ένα αριθμό με δεκαδικό η C# θεωρεί αυτομάτως ότι είναι double. Ο πίνακας όμως έχει οριστεί ως float, οπότε δεν μπορεί να μετατραπεί το 34.5 σε float. Για να μπορέσω να περάσω τις τιμές ως float θα πρέπει να βάλω το F μετά από κάθε αριθμό, να γράψω δηλαδή 34.5F. Έτσι ο παρακάτω κώδικας θα δουλέψει:
float
[] data = new float[] {34.5F , 34.6F , 23.5F};
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos