2016-08-22 63 views
-3

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

Image of the resulted Chart

我已经添加了图像。这里的黄色highlighed行显示0(百分比),但事实上这是我想在这里显示的非常小的数字。但它只是显示为0而不是意图。

在此先感谢。

+1

'3.40E-5'纯粹是一个'double'的字符串表示。 –

+0

你想在图表中做什么? –

+0

虽然我没有投票下来,但是你的帖子只是缺少一个“问题” –

回答

3

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

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

事实上,你可以做到这一点,它不会失败:'Debug.Assert(0.000034 == 3.40e-5);' –

+0

“只有当你将值表示为字符串时才会看到”E“。”是不正确的语句,我看到它也是如果我将double翻倍到小数点后的位数比2更多。 – user6742640

+0

你在哪里看到它? Visual Studio调试器还向您显示字符串表示的值。真正的价值存储在内存中的方式如下所述:https://en.wikipedia.org/wiki/Double-precision_floating-point_format如果你写了类似(3.40e-5).ToString(“F15”),在双变量中会得到15个分数 – dlxeon