C# 用指数舍入双精度值

C# 用指数舍入双精度值,c#,double,rounding,exponent,C#,Double,Rounding,Exponent,例如,我有一个双精度值0.000034,我想要一个双精度值3.40E-5(请注意,所需的第二个值也是双精度值,而不是字符串)。到目前为止,我发现的所有结果都将值转换为字符串格式,这是不需要的。我有我的图表程序的双打列表 我已经添加了图像。在这里,黄色高亮显示的行显示0(百分比),但实际上,我想在这里显示的是一个非常非常小的数字。但它只是显示为0,这不是预期的 提前感谢。0.000034和3.40e-5只是用两种不同的方式声明相同值的同一变量,与舍入无关。只有当您将值表示为字符串时,才会看到“E

例如,我有一个双精度值0.000034,我想要一个双精度值3.40E-5(请注意,所需的第二个值也是双精度值,而不是字符串)。到目前为止,我发现的所有结果都将值转换为字符串格式,这是不需要的。我有我的图表程序的双打列表

我已经添加了图像。在这里,黄色高亮显示的行显示0(百分比),但实际上,我想在这里显示的是一个非常非常小的数字。但它只是显示为0,这不是预期的


提前感谢。

0.000034和3.40e-5只是用两种不同的方式声明相同值的同一变量,与舍入无关。只有当您将值表示为字符串时,才会看到“E”。因此,如果您声明如下两个变量,它们将具有相同的值

double value1 = 0.000034;
double value2 = 3.40e-5;

3.40E-5
纯粹是
双精度的字符串表示形式
。您想对图表中的值做什么?虽然我没有投反对票,但您的帖子只是缺少了一个“问题”,这是您在调试器中显示值时遇到的问题吗???确实可以做到,而且不会失败:
Debug.Assert(0.000034==3.40e-5);
“只有当您将值表示为字符串时,才会看到“E”是不正确的语句,如果我将双精度舍入到大于2的小数位数,我也会看到它。您在哪里看到它?Visual studio调试器还会以字符串表示形式显示值。实际值存储在内存中的方式如下所述:如果您编写类似(3.40e-5)的内容。ToString(“F15”),您将在双变量中得到15个分数