2016-08-22 71 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