2013-02-08 81 views
1

有沒有辦法讓'double.toString()'中的結果字符串包含雙精度值?保留toString中的小數位數

例如

double d = 123.0 -> toString() will be "123" 

我已經找到了解決方案的一點點在使用自定義格式.toString("#.0")但如果我想添加任何小數我回到那裏,我開始

double d = 123.00 -> toString("#.0") will be 123.0 
double d = 123.0 -> toString("#.00") will be 123.00 

我試圖做到這一點的原因是因爲我有自定義文本框,必須使用不同的值,實際顯示的那個,當試圖輸入自己的值到這個文本框文本框忽略當你嘗試以十進制輸入零時你的文本錯誤的地方。因此,我需要toString值等於double的確切值,以便可以正確輸入此號碼。

謝謝

回答

4

是否有從「double.toString()」包含雙的精確值的方式,使生成的字符串?

確實包含double的精確值 - 但double不存儲123,以及123.0和123.00之間的任何差異。

decimal然而,如果你關心精確的十進制數字,它會存儲差異。

在另一方面,這聽起來像實際上你正在做放錯了地方的比較:

我想這樣做的原因是因爲我有自定義的文本框必須使用與實際顯示的值不同的值,並且當您嘗試在此文本框中輸入自己的值時,當您嘗試在小數點輸入零時,文本框將忽略文本。

不要比較字符串值 - 解析值(要麼decimaldouble),然後比較解析值。

這也將防止前導爲零的問題,其中「0123」和「123」代表相同的值,但是不同的字符串。

+2

男人,你很快;)張貼在stackoverflow你的全職工作? – animaonline

+0

+1爲最後一條信息。不知道小數是否知道他所支持的數字之間的差異 –

+0

@animaonline他的全職工作甚至不涉及C# –