我想将我的十进制值(如 2.2222)四舍五入为 2.23。当我使用圆形时,
decimal a = Math.Round((decimal)2.222, 2);
当我使用天花板时,它会导致 3
decimal c = Math.Ceiling((decimal)2.22);
我怎样才能得到 2.2222 到 2.23 ?
public static decimal CeilingAfterPoint(this decimal number, int digitsAfterPoint) {
return Math.Ceiling(number * (decimal)Math.Pow(10, digitsAfterPoint))
/ (decimal)Math.Pow(10, digitsAfterPoint);
}
decimal c = Math.Ceiling((decimal)2.2222*100)/100;
但这很愚蠢。
尝试类似的东西
decimal c = Math.Ceiling((decimal)2.222*100)/100;
但如果你的价值是2.22
我解决了我的问题..
string n = "2.2222";
string[] s = n.Split('.');
if (s[1].Count() >= 3)
{
List<char> z = s[1].ToString().Take(2).ToList();
int c=Convert.ToInt32(z[0].ToString() + z[1].ToString()) + 1;
// int b = Convert.ToInt32(s[1].ElementAt(0).ToString() + s[1].ElementAt(1).ToString()) + 1;
string output= s[0] + "." + c.ToString();
}
现在可以放任何数字,它将取 2 个十进制值并加 1。谢谢。