Domanda

class Program
{
    static void Main(string[] args)
    {
        string str = "0.898";
        double dbl = Double.Parse(str);

        dbl++;

        Console.WriteLine(dbl);
        Console.ReadLine();
    }
}

Tutti gli altri formati di cui ho bisogno per funzionare, come "100", funzionano.Ma non appena aggiungo un "punto" ho a FormatException errore.

È stato utile?

Soluzione

magari prova:

double dbl = double.Parse(str , CultureInfo.InvariantCulture);

controlla qui a ideone

Il tuo problema è che la tua cultura non consente i punti.La cultura invariante non è l'unica soluzione, puoi anche specificare la tua cultura e utilizzare i suoi separatori.Se la tua cultura attuale accetta solo virgole come separatori, potrebbe anche essere una soluzione sostituire il punto con la virgola.La mancata specifica della cultura in modo esplicito comporterà problemi con l'analisi dei numeri in macchine diverse che eseguono culture diverse.

Tutto ciò che è specifico di una cultura è sempre complicato e dovrebbe essere definito nel modo più preciso possibile.Se sai esattamente quale doppio formato utilizzerai, definiscilo.Se sai quale formato data utilizzerai, specificalo, ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top