Double to String Format文本格式

本文关键字:文本 格式 Format String to Double | 更新日期: 2023-09-27 18:16:35

我有以下几行代码

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

它给我输出

2.0135191150276E+15

如果我写

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

它给我

 2013519115027600.0

但是我想要标签文本

2013519115027601

怎么做?

Double to String Format文本格式

关于您的formId变量的使用,我没有足够的信息。

如上面所示,当没有小数可处理时,使用双精度数据类型似乎是错误的。因此,将变量重新定义为长数据类型将很容易,转换将是相同的。
long formId=2013519115027601;
txtEditFormID.Text = formid.ToString();  

更不用说使用整数而不是浮点数对代码的额外好处了。
但是,如果您想保持当前的数据类型,那么

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

往返格式说明符

当使用此说明符格式化单个或双精度值时,它是首先使用通用格式进行测试,精度为15位a Double和7位精度表示Single。如果值为成功解析回相同的数值后,它被格式化使用通用格式说明符。如果不成功解析回相同的数值后,它被格式化为17位数字

您的第一个选择是使用数据类型为longdecimal。如果你想继续使用double,你还可以这样做:

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

这将删除所有的'.'字符

有时我希望以双精度处理计算,但我希望结果显示为整型或甚至四舍五入的数量,因此问题并不那么奇怪(假设给定的样本被简化以提出问题)。

我打算发布四舍五入的示例代码,但使用内置方法Math.Round()更有意义。您可以像上面提到的那样,将其转换为long类型,但是如果需要(恕我直言,通常是这样),则不会进行舍入。

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