Εντάξει, μάλλον όλοι το ξέρουμε, αλλά κάθε φορά που πέφτω πάνω του εντυποσιάζομαι με το πως ένα, κάτα την ταπεινή μου γνώμη, bug τόσο παλιό όσο και η VB (και μιλάμε για 1993!) σκάει μύτη ακόμη και σήμερα...
Λοιπόν, για να συνθέσω ένα string στην VB (VB3,4,5,6,.NET), πρέπει ΠΑΝΤΑ να χρησιμοποιώ το & και μόνο το &. Αν όχι, να τα αποτελέσματα:
MsgBox("4.5" + 4 + "7") και μου επιστρέφει το string "15.5" και όχι "4.547". Αν ανακατέψω λίγο τα πράγματα γίνετε πιο ενδιαφέρον...
MsgBox("4.5" + 4 & "asdfasf") -> "8.5asdfasf"
MsgBox("4.5" + 4 & "7") και έχω σαν αποτέλεσμα το "8.57" και φυσικά παίζουν και όλοι οι υπόλοιποι συνδιασμοί όπου μπορώ να έχω ότι αποτέλεσμα σε ότι χρώμα θέλω και φυσικά ποτέ το σωστό...
Είναι προφανές ότι το όλο πρόβλημα οφείλετε στην προσπάθεια type casting που κάνει ο compiler για να φέρει τα πράγματα σε μια σειρά. Όσο για μένα και την VB.NET, έχω πάντα Option strict ON, οπότε ο compiler διαμαρτύρετε με
Option Strict On disallows implicit conversions from 'String' to 'Double'
και έχω ησυχάσει από το πρόβλημα και τυχόν αβλεψίες...