Il valore double internamente non ha né virgola né punto, è solo un valore binario; quando però lo converti in una stringa si applicano le impostazioni internazionali del sistema (che, per i sistemi italiani, a meno che tu non le cambi nel Pannello di controllo, è di avere la virgola come separatore decimale). Puoi eseguire l'override di queste impostazioni quando converti usando accorgimenti particolari; ad esempio:
codice:
string s, double d=10.5;
s=d.ToString(NumberFormatInfo.InvariantInfo);
.