Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 双精度转换为字符串格式文本格式_C#_Double_Cultureinfo - Fatal编程技术网

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”)
它似乎完全正确