C # decimal take ceiling 2

I want to round my decimal value, e.g. 2.2222 to 2.23. When I use the round,

decimal a = Math.Round((decimal)2.222, 2); 

When I use the ceiling, it calls 3

 decimal c = Math.Ceiling((decimal)2.22); 

How can I get 2.2222 to 2.23?

+4
source share
4 answers

I solved my problem.

  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(); } 

any number can now be added, it will take 2 decimal values ​​and add 1.Thanks.

-5
source
 public static decimal CeilingAfterPoint(this decimal number, int digitsAfterPoint) { return Math.Ceiling(number * (decimal)Math.Pow(10, digitsAfterPoint)) / (decimal)Math.Pow(10, digitsAfterPoint); } 
+6
source
 decimal c = Math.Ceiling((decimal)2.2222*100)/100; 

but that is stupid.

+1
source

try something like

 decimal c = Math.Ceiling((decimal)2.222*100)/100; 

but it fails if your value is 2.22

0
source

Source: https://habr.com/ru/post/1443638/


All Articles