可能重复:
c# - How do I round a decimal value to 2 decimal places (for output on a page)
我有一个XML文件,其中包含字符串格式的十进制温度值。例子:
<temp>30</temp>
<temp>40.6</temp>
我使用LINQ这样检索温度
temperature = d.Element("temp").Value
如何修改此代码,以便在以字符串格式分配温度之前适当地向上或向下舍入值。这意味着,在第一个例子中,温度为“30”,而在第二个例子中,温度为“41”。感谢。
答案 0 :(得分:3)
您当前的值是字符串。
这应该有效:
string temperature =
double.Parse( d.Element("temp").Value, CultureInfo.InvariantCulture)
.ToString("0.");
答案 1 :(得分:1)
您可以使用:
Math.Round(double.Parse(d.Element("temp").Value))
答案 2 :(得分:1)
double temp = Double.Parse(d.Element("temp").Value;
string displayTemp = temp.ToString("0.");
答案 3 :(得分:1)
在进行舍入时要注意的一件事是你要尝试哪种舍入。例如以下内容:
var num = "2.5";
Console.WriteLine(Decimal.Parse(num).ToString("0."));
Console.WriteLine(Math.Round(Decimal.Parse(num),0));
输出: 3 2
您需要执行以下操作以使用Math.Round输出3:
Console.WriteLine(Math.Round(Decimal.Parse(num),0, MidpointRounding.AwayFromZero));