1. 程式人生 > >c#中取整和取餘

c#中取整和取餘

"%"為取餘號,不用多說。
  "/"號現在整形運算是取整,浮點運算時為除法運算,如54/10結果為5,54.0/10.0結果為5.4而且取整時不進行四捨五入只取整數部分,如54/10和56/10是5.
  Math.Celling()取整數的較大數,相當於不管餘數是什麼都會進一位。如Math.Celling(54.0/10.0)結果為6.
  Math.Floor()取整數的較小數,相當於"/"號,即不管餘數部分是什麼都不進行進位。如Math.Floor(56.0/10.0)的結果是5.
程式碼如下:
using System; using System.Collections.Generic;  using System.Text; namespace ConsoleApplication5  { class Program { static void Main(string[] args)  { Console.WriteLine("(54/10):{0}", 54 / 10); Console.WriteLine("(56/10):{0}", 56/ 10); Console.WriteLine("(54.0%10.0):{0}", 54.0 % 10.0); Console.WriteLine("(56.0%10.0):{0}", 56.0 % 10.0); Console.WriteLine("Math.Celling(54.0/10.0):{0}", Math.Ceiling(54.0 / 10.0)); Console.WriteLine("Math.Celling(56.0/10.0):{0}", Math.Ceiling(56.0 / 10.0));  Console.WriteLine("Math.Floor(54.0/10.0):{0}", Math.Floor(54.0 / 10.0));  Console.WriteLine("Math.Floor(56.0/10.0):{0}", Math.Floor(56.0 / 10.0)); } } }
C#中,關於除法"/"運算得一點問題。

  現在C#與法中,"/"除後所得的值的型別,跟他的除數和被除數的型別有關。如:
int a=4;
int b=5;
float c=a/b ;
  則結果為0(因為會先進行int的除法操作,得出結果0,再將結果轉為float 0;);
  總之,得出的數都是整形的,最終發覺原來除後所得的值的型別,跟他的除數和被除數的型別有關。所以,應寫成:
float a=3;
float b=5;
float c=a/b;
這樣,才能得出正確的結論!