2012-12-19 90 views
3

我試圖做這種轉換(小數?到字符串)使用從幾個類似的帖子,但以某種方式失敗的信息(「G29」;替換(「0,00」,「」)... )那麼什麼是最好的方法來轉換91,5M小數?串起來讓我們有91,5?小數?以字符串刪除尾隨零的C#

string a; 
    decimal? number = 91.5M; 
    a = number.ToString(); 

在這個例子中a = 91.5,一切都很好。但出於一些奇怪的原因,當我從Oracle數據庫中得到一堆對象並嘗試將它們轉換爲這種特定的格式而沒有拖尾零時,我無法找到一種方法來做到這一點,因爲總是最終的輸出是91,50的91,5

+3

那麼讓我們來看看,你都可以從甲骨文的對象的代碼。你所顯示的代碼並不是問題所在,所以它在很大程度上是不相關的。 –

+0

那些在Oracle中定義的「對象」是什麼(確切的列類型是什麼)? –

+0

另外值得注意的是,你應該檢查這些對象爲null,然後再訪問它們... –

回答

0

如果專門要達到沒有前導零的一個小數點位置,你可以試試這個:

string str = number.ToString("0.#"); 

添加更多#將提高精確度,但結果不包含非顯著數字。 如果必須保持尾隨零,請將#替換爲0

您還可以指定分隔符的格式,與第二IFormatProvider參數:

string str = number.ToString("0.#", fr-FR); // 5 => 5 5,123 => 5,1 (comma) 
string str = number.ToString("0.#", en-US); // 5 => 5 5,123 => 5.1 (dot) 
2
var a = number.ToString("G29"); 

這應該刪除輸出字符串中的尾隨零。這裏有一個潛在的缺陷,非常小的值將表示「xEx」格式。不知道這對你是否有問題。