Se nelle impostazioni internazionali del tuo Windows (Pannello di controllo/Opzioni internazionali e della lingua) è specificato che la parte decimale di un numero è separata da quella intera con il carattere virgola, ci sarà pure un motivo!
Se in un textbox scrivi 15.5 (e non 15,5) la funzione Parse (come pure altre metodi impliciti del linguaggio) trasformerà il numero in 155 in quanto il punto è visto come il separatore delle migliaia.
Se provi l'esempio che ti ho dato nel post precedente, vedrai che se scrivi la stringa "15,5 €" verrà convertito correttamente in 15,5 (single). Stessa cosa dicasi con "0,02 €".
Mi sembra comunque che fai una cerca confusione tra stringhe e numeri, in particolare la tua affermazione "...mi restituisce 15.5, ma invece vorrei 15.50" è alquanto significativa.
Allora ti dico che:
  • tutti i calcoli tra numeri devono essere eseguiti utilizzando i tipi numerici (Integer, Single, Double, Decimal, ecc.)
  • ti preoccuperai della formattazione del numero (caratteri di valuta, numero di decimali ecc.) solo al momento dell'output a video o su carta (usando opportunamente la funzione Format)
  • se devi memorizzare in un database dei numeri, usa i tipi numerici messi a disposizione dal database (corrispondeno di massima con i tipi definiti nel linguaggio)

Come consiglio spassionato, per gestire le valute usa il tipo Decimal (oppure Currency in VB6) in quanto Single e Double possono in certi casi introdurre pericolosi errori di arrotondamento.

Ciao