我有以下代码行
double formId=2013519115027601;
txtEditFormID.Text = formid.ToString();
它给我输出
2.0135191150276E+15
如果我写
txtEditFormID.Text = formId.ToString("0.0", CultureInfo.InvariantCulture);
它给了我
2013519115027600.0
但我想要标签文字
2013519115027601
怎么做?
答案 0 :(得分:0)
我没有足够的有关formId
变量用法的信息。
如上所示,当没有小数要处理时,使用double数据类型似乎是错误的。因此,将变量重新定义为长数据类型将很容易,并且转换将是相同的。
long formId=2013519115027601;
txtEditFormID.Text = formid.ToString();
更不用说代码使用整数而不是浮点数的额外好处 但是,如果要保持当前数据类型,则
txtEditFormID.Text = formId.ToString("R");
The Round Trip Format Specifier
使用此说明符格式化Single或Double值时,它是 首先使用通用格式进行测试,精度为15位 单个精度的双精度和7位精度。如果值是 成功解析回相同的数值,它被格式化 使用通用格式说明符。如果值不成功 解析回相同的数值,使用17位数格式化 单精度的精度为双精度和9位精度。
答案 1 :(得分:0)
您的第一个选择是将数据类型用作long
或decimal
。如果你想继续使用double,你可以做的其他事情是:
double formId = 2013519115027601;
string text = formId.ToString();
txtEditFormID.Text = text.Replace(".",string.Empty);
这将删除所有'.'
字符
答案 2 :(得分:0)
有些时候我希望计算处理为double但我希望结果显示为int或甚至舍入的数量,所以问题不是那么奇怪(假设给定的样本被简化以便提出问题)。
我打算发布用于舍入的示例代码,但是使用内置方法Math.Round()更有意义。如上所述,你可以施展很长时间,但如果需要,你就不会进行舍入(通常是恕我直言)。
答案 3 :(得分:0)
txtEditFormId.Text =((long)formId).ToString();