C# 双精度转换为字符串格式文本格式
我有以下几行代码C# 双精度转换为字符串格式文本格式,c#,double,cultureinfo,C#,Double,Cultureinfo,我有以下几行代码 double formId=2013519115027601; txtEditFormID.Text = formid.ToString(); 它给我输出 2.0135191150276E+15 如果我写 txtEditFormID.Text = formId.ToString("0.0", CultureInfo.InvariantCulture); 它给了我 2013519115027600.0 但是我想要标签文本 2013519115027601 如何操作
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");
使用此说明符格式化单值或双值时,它是
首先使用通用格式进行测试,精度为15位
双精度和单精度的7位数。如果值为
已成功解析回相同的数值,该数值已格式化
使用通用格式说明符。如果该值未成功输入
解析回相同的数值后,使用17位数字格式化
精度为双精度,精度为9位数,精度为单精度
第一个选项是使用数据类型为
long
或decimal
。如果您想继续使用double,还可以做以下几点:
double formId = 2013519115027601;
string text = formId.ToString();
txtEditFormID.Text = text.Replace(".",string.Empty);
这将删除所有的
。
字符有时我希望计算结果以双精度处理,但我希望结果显示为整数或甚至四舍五入的数值,因此问题并不奇怪(假设为了提问,简化了给定的示例)
我本来打算发布舍入的示例代码,但是只使用内置的Math.Round()方法更有意义。如上所述,您可以强制转换为long,但如果需要(通常是IMHO),则不会进行舍入操作。txtEditFormId.Text=((long)formId.ToString() 你不能用
long
代替double
?txtEditFormId.Text=((long)formId.ToString()代码>这可以是helpful@newStackExchangeInstance这很有效fine@IlyaIvanov往返说明符呢<代码>formID.ToString(“R”)
它似乎完全正确