将字符串转换为2位小数

时间:2012-08-22 12:42:49

标签: c#

我有一个字符串(确认是十进制表达式) 0.4351242134

我想转换为带有两位小数的字符串 0.44

我应该怎样做C#?

7 个答案:

答案 0 :(得分:9)

var probablyDecimalString = "0.4351242134";
decimal value;
if (Decimal.TryParse(probablyDecimalString , out value))
    Console.WriteLine ( value.ToString("0.##") );
else
    Console.WriteLine ("not a Decimal");

答案 1 :(得分:7)

var d = decimal.Parse("0.4351242134");
Console.WriteLine(decimal.Round(d, 2));

答案 2 :(得分:7)

我会这样做:

var d = "0.4351242134";
Console.WriteLine(decimal.Parse(d).ToString("N2"));

答案 3 :(得分:2)

float f = float.Parse("0.4351242134");
Console.WriteLine(string.Format("{0:0.00}", f));

请参阅this了解string.Format。

答案 4 :(得分:1)

这有用吗

double ValBefore= 0.4351242134;
double ValAfter= Math.Round(ValBefore, 2, MidpointRounding.AwayFromZero); //Rounds"up"

答案 5 :(得分:1)

首先,您必须使用文化进行解析,否则您可能会丢失小数。 接下来,您必须有一个文本结果才能具有固定的小数位数。 最后,您四舍五入到两位小数,但 ToString() 可以为您做到这一点,因此:

string amount5 = "2.509"; // should be parsed as 2.51

decimal decimalValue = Decimal.Parse(amount5, System.Globalization.CultureInfo.InvariantCulture);
string textValue = decimalValue.ToString("0.00");

// 2.51

答案 6 :(得分:0)

float myNumber = float.Parse("0.4351242134");
Console.WriteLine(string.Format("{0:f2}", myNumber ));

https://msdn.microsoft.com/en-us/library/s8s7t687.aspx