2011-11-27 86 views

回答

1

您需要的IFormatProvider:

http://www.csharp-examples.net/iformatprovider-numbers/
http://msdn.microsoft.com/en-us/library/7tdhaxxa.aspx

編輯:上面的海報給你更多的細節。

using System; 

namespace test1{ 
    class MainClass { 
     public static void Main (string[] args)  { 
      double d = 0.005; 
      d = d/100; 
      string str = String.Format("{0:0.#####}",d); 
      Console.WriteLine ("The double converted to String: "+str); 
     } 
    } 
} 

這應該編譯並顯示你想要的。

它不能得到任何更清晰比這

編輯: 對於更具體的例子看看這裏:`

http://www.csharp-examples.net/string-format-double/

`

+0

我試過了,但它不工作。 – Sahil

+0

@Sahil:我編輯了我的帖子,以獲得更全面的答案。你需要更全面地查看文檔,以便你自己解決問題。 – RedComet

+0

這對我提供的一個值是正確的。但如果我的價值像0.0005那麼它不工作......因爲我的雙重價值不是靜態的,它依賴於用戶輸入而改變。 – Sahil

1

你想指定將double轉換爲字符串的格式。 Double.ToString不會讓你這樣做(它使用科學記數法),所以你應該使用String.Format,而不是。

這裏是你的代碼,更新:

string str = String.Format("{0:0.#####}", 0.00005);

事實上,Double.ToString實際使用的String.Format引擎蓋下。請參閱此鏈接更多:MSDN docs about Double.ToString

請參閱以下鏈接的String.Format更多的例子: Examples of using String.Format

+0

當然'Double.ToString'允許。你只是忽略了過載。 – leppie

+0

請注意,另一張海報使用了我的一些信息。請在信用到期時給予信用。 –

0

我找到了解決辦法:

string str = d.ToString("F99").TrimEnd("0".ToCharArray()); 

這是工作的罰款。但是,這是怎麼回事,我不知道。這適用於動態雙重價值。

爲你們兩個人的問題,誰回答。