2016-07-29 64 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

相关问题