C# 除法的小數點問題

來源:互聯網
上載者:User

在c#中除法預設不保留小數點,

decimal result = 100 / 1000; // result = 0;

需要保留小數點,可以如下

decimal result = 100m / 1000;

m代表decimal.

如果是變數要如何處理呢?這是需要用到Math.Round()

int x= 120;

int y= 100000;

decimal result = (decimal)x / y; // (decimal)x/ y 表示把 x 轉換成decimal再做除法運算,int 除 int 是會丟失小數點的。

不過這樣的小數點後面的數太多了,需要處理下,這時候需要Math.Round()

decimal result = Math.Round((decimal)x/ y,2); 後面的2表示保留小數點後2位小數

--------------------------------------------------------------------------------------------------------

在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;

         這樣,才能得出正確的結論!

在int裡,2/5的結果就是0

又因為運算式(float num = 2/5)左邊是float,而int可以隱式轉換成float,所以,C#把0變成了float的:0.0

如果你要得到正確的結果,必須至少讓等號右邊的一個數為float:加個小數點,或者加上F:

2.0/5

2.0/5.0

2f / 5

 

在c#中除法預設不保留小數點,

decimal result = 100 / 1000; // result = 0;

需要保留小數點,可以如下

decimal result = 100m / 1000;

m代表decimal.

如果是變數要如何處理呢?這是需要用到Math.Round()

int x= 120;

int y= 100000;

decimal result = (decimal)x / y; // (decimal)x/ y 表示把 x 轉換成decimal再做除法運算,int 除 int 是會丟失小數點的。

不過這樣的小數點後面的數太多了,需要處理下,這時候需要Math.Round()

decimal result = Math.Round((decimal)x/ y,2); 後面的2表示保留小數點後2位小數

--------------------------------------------------------------------------------------------------------

在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;

         這樣,才能得出正確的結論!

在int裡,2/5的結果就是0

又因為運算式(float num = 2/5)左邊是float,而int可以隱式轉換成float,所以,C#把0變成了float的:0.0

如果你要得到正確的結果,必須至少讓等號右邊的一個數為float:加個小數點,或者加上F:

2.0/5

2.0/5.0

2f / 5

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.