How to remove decimal part from a number in C#

后端 未结 7 761
予麋鹿
予麋鹿 2020-12-08 04:12

I have number of type double. double a = 12.00 I have to make it as 12 by removing .00

Please help me

相关标签:
7条回答
  • 2020-12-08 04:19

    Use Decimal.Truncate

    It removes the fractional part from the decimal.

    int i = (int)Decimal.Truncate(12.66m)
    
    0 讨论(0)
  • 2020-12-08 04:21

    If you just need the integer part of the double then use explicit cast to int.

    int number = (int) a;
    

    You may use Convert.ToInt32 Method (Double), but this will round the number to the nearest integer.

    value, rounded to the nearest 32-bit signed integer. If value is halfway between two whole numbers, the even number is returned; that is, 4.5 is converted to 4, and 5.5 is converted to 6.

    0 讨论(0)
  • 2020-12-08 04:26

    here is a trick

    a =  double.Parse(a.ToString().Split(',')[0])
    
    0 讨论(0)
  • 2020-12-08 04:32

    Use Math.Round

    int d = (int) Math.Round(a, 0);
    
    0 讨论(0)
  • 2020-12-08 04:33

    Reading all the comments by you, I think you are just trying to display it in a certain format rather than changing the value / casting it to int.

    I think the easiest way to display 12.00 as "12" would be using string format specifiers.

    double val = 12.00;
    
    string displayed_value = val.ToString("N0"); // Output will be "12"
    

    The best part about this solution is, that it will change 1200.00 to "1,200" (add a comma to it) which is very useful to display amount/money/price of something.

    More information can be found here: https://msdn.microsoft.com/en-us/library/kfsatb94(v=vs.110).aspx

    0 讨论(0)
  • 2020-12-08 04:34

    Because the numbers after point is only zero, the best solution is to use the Math.Round(MyNumber)

    0 讨论(0)
提交回复
热议问题