2016-07-29 24 views
-3

我需要將某些值轉換爲十進制值。我有以下完成:如何使用C#將一個值格式化爲一個小數位數

Double calculateinputPower="somegivenvalue"; 
     String valuePower="somevalue"; 
     Double calculatePower = Double.Parse(valuePower); 
     calculatePower = calculatePower - calculateinputPower + calculateErp * 1; 
     calculatePower = Double.Parse(String.Format("{0:0.0}", calculatePower)); 
     valuePower = System.Convert.ToString(calculatePower); 
     ERP.Text = valuePower; 

如果我的產值像 前:66.2356 - > 66.2,32.568 - > 32.5,22.35264 - > 22.3 我收到的格式,我到底需要,但如果輸出值就像 22,33,11,66,55這樣的東西那麼我想把該值轉換爲 22-> 22.0 33-> 33.0 11-> 11.0 66-> 66.0我怎麼能得到這個C#。

我用myVal.ToString("F");然後我得到0.00 如果我使用ToString("N2");然後我收到1,000.00 但我不要錢格式或0.00格式 正是我需要的是一個0.0,如果該值非小數。

回答

4

只需使用.ToString("0.0")(注意:本品採用四捨五入所以22.26 -> 22.3

 double i = 22.23; 
    double j = 45; 

    string si = i.ToString("0.0"); //22.2 
    string sj = j.ToString("0.0"); //45.0 
1

你需要看看documentation for the format strings you're using

您已嘗試F,其中說因爲您尚未指定「默認精度說明符:由NumberFormatInfo.NumberDecimalDigits定義」的精度。,這是你的情況。

您已嘗試N2,其中說明2是「精度說明符:所需的小數位數」。

由於您只想要一個小數位,請使用F1N1,具體取決於您的格式要求。

var number1 = 66.2356d; 
var number2 = 66d; 

var string1 = number1.ToString("N1"); // 66.2 
var string2 = number2.ToString("N1"); // 66.0 

請參閱this fiddle

3

嘗試這種方式:

valuePower = calculatePower.ToString("F1"); 

要了解更多信息,請遵循以下link

+0

謝謝@gypsyCoder其現在的工作 – Srikanth

相關問題