簡體   English   中英

Double to String Format文本格式

[英]Double to String Format text format

我有以下幾行代碼

double formId=2013519115027601;
txtEditFormID.Text = formid.ToString();  

它給我輸出

2.0135191150276E+15

如果我寫

txtEditFormID.Text = formId.ToString("0.0", CultureInfo.InvariantCulture);

它給我

 2013519115027600.0

但我想要標簽文字

2013519115027601

怎么做?

我沒有足夠的信息有關您的formId變量的用法。

如上所示,當沒有小數要處理時,使用雙精度數據類型似乎是一個錯誤。 因此,將變量重新定義為長數據類型將很容易,並且轉換將相同。

long formId=2013519115027601;
txtEditFormID.Text = formid.ToString();  

更不用說使用整數而不是浮點數為代碼提供的額外好處。
但是,如果要維護當前數據類型,則

 txtEditFormID.Text = formId.ToString("R");

往返格式說明符

當使用此說明符格式化Single或Double值時,首先使用常規格式對其進行測試,Double的精度為15位,而Single的精度為7位。 如果該值已成功解析回相同的數值,則使用常規格式說明符對其進行格式化。 如果該值未成功解析回相同的數值,則使用Double的17位精度和Single的9位精度對它進行格式化。

您的第一個選擇是使用數據類型為longdecimal 如果要繼續使用double可以做的其他事情是這樣的:

        double formId = 2013519115027601;
        string text = formId.ToString();
        txtEditFormID.Text = text.Replace(".",string.Empty);  

這將刪除所有的'.' 字符

有時候我希望計算結果加倍,但我希望結果以整數或舍入后的金額顯示,因此問題並不那么奇怪(假設簡化給定樣本以便提出問題)。

我打算發布樣本代碼進行四舍五入,但是僅使用內置方法Math.Round()更有意義。 您可以如上所述將其強制轉換為long,但是如果需要的話,將不會舍入(通常是恕我直言)。

txtEditFormId.Text =(((long)formId).ToString();

暫無
暫無

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

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