C# Konvertieren.ToDouble() verliert Nachkommastellen bei der Konvertierung von string zu double

Sagen wir, wir haben den folgenden einfachen code

        string number = "93389.429999999993";
        double numberAsDouble = Convert.ToDouble(number);
        Console.WriteLine(numberAsDouble);

nach, dass die Umstellung numberAsDouble variable hat den Wert 93389.43. Was kann ich tun, um diese Variablen behalten Sie die volle Nummer ohne Runden? Ich habe festgestellt, dass Convert.ToDecimal verhält sich nicht die gleiche Weise, aber ich brauche den Wert als double.

-------------------kleines update---------------------

setzen Sie einen Haltepunkt in Zeile 2 der obige code zeigt, dass die numberAsDouble variable hat den gerundeten Wert 93389.43, bevor Sie an der Konsole angezeigt.

  • Wenn ich mich Recht erinnere, ist es das Parsen number richtig, es ist jedoch angezeigt wird, wie ein gerundeter Wert, wenn Sie gedruckt werden. Legen Sie einen Haltepunkt, und bestätigen Sie diese. Ich kann falsch sein, obwohl, daher der Kommentar.
  • Bitte sehen, ob die vorherigen Antworten helfen, - stackoverflow.com/questions/tagged/... ...
  • Warum müssen Sie es als ein double?
  • ich übergeben zu müssen, den Wert zu verdoppeln, um eine Bibliothek für andere Berechnungen
  • Und ist die übergabe in einem Wert, der 0.000000000007 anderen wird ein wesentlicher Unterschied in diesen Berechnungen? Wenn nicht einfach verdoppeln.
  • Diese Bibliothek ist nicht in der Lage sein werden, mehr präzise mit einem double als dein code.
  • Das ist, was ich dachte. Aber es ist die Bibliothek, dass die Exporte dieser Nummer. Es wird aufgerufen, Gurobi, wenn Sie es wissen.

Schreibe einen Kommentar