[英]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位精度對它進行格式化。
您的第一個選擇是使用數據類型為long
或decimal
。 如果要繼續使用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.