簡體   English   中英

double.ToString() 在 C# 中返回錯誤的值

[英]double.ToString() return wrong value in C#

我有雙變量,它的值是:

double d = 0.000000000000056843418860808015;

當我打印這個變量時,它的打印錯誤。

d.ToString();

輸出:“5.6843418860808E-14”

如何解決這個問題?

好吧,如果你想要一個沒有指數符號的輸出,你需要格式化你的字符串:

d.toString("F25");

這將為您提供最多 25 個小數位的“正確”數字。

0,0000000000000568434188608

編輯此處提供完整的格式和轉換列表,下面為您提供快照。

Original value: 1054.32179

F:                     1054.32 
F0:                    1054 
F1:                    1054.3 
F2:                    1054.32 
F3:                    1054.322
        double d = 0.000000000000056843418860808015;
        var str = d.ToString("G17");
        var value = str.Split('E')[0];
        var zeros = Int32.Parse(str.Split('E')[1]);
        var outputString = "";
        zeros = Math.Abs(zeros);
        var addstring = "0.";
        for (var i = 0; i < zeros - 1; i++)
        {
            addstring += '0';
        }
        value = value.Remove(1, 1);
        value = addstring + value;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM