2013-12-19 96 views
3

我試圖找到浮點數據類型的簡單模數運算。模數運算如何與float數據類型一起使用?

float a=3.14f; 
float b=10f; 
result=a%b; 

我m到處結果= 3.14

又如使用十進制的數據類型:

decimal p=10; 
decimal q=40; 
result=p%q; 

得到答案= 20。

我不理解模量是如何工作的?

+0

你明白''%如何與整數作品? – dan04

+5

重新檢查你的第二個例子。 10%40 = 10,而不是20. –

+0

我知道我遲到了派對,但是10%40應該是0.%get的剩餘部分。 – jtsmith1287

回答

3

關於msdn的這篇文章有足夠的例子,但我可以真正快速地解釋它;

http://msdn.microsoft.com/en-us/library/0w4e0fzs.aspx

如果你做什麼int result = x % y;你會發現,你將返回的x % y其餘和值被視爲更像是整數。例如,鏈接中的第三行是Console.WriteLine(5.0 % 2.2);,其中打印.6。這是因爲它發現2.2可以進入5.0不超過兩次。所以它確實是5 - 2.2(2)它是.6

+0

幫我看看它的工作原理? – user3117347

+0

@ user3117347對於'x%y',它發現'y'完全分開了''''a'次然後給你餘數。含義'y *(a + 1)'會大於'x','y * a'小於'x'。它給你'x'和'y * a'或'x - (y * a)'之間的區別 – evanmcdonnal

7

從浮點剩餘的C#語言規範。在x % y的情況下,如果xy是正的有限值。

zx % y結果和被計算爲x – n * y,其中n 是最大可能的整數,它是小於或等於x/y

C#語言規範還清楚地概述瞭如何處理非零有限值,零,無窮的所有可能組合的情況下做的桌子,和NaN的,可以用X%Y的浮點值出現。

      y value 

       | +y –y +0 –0 +∞ –∞ NaN 
      -----+---------------------------- 
    x   +x | +z +z NaN NaN x x NaN 
      –x | –z –z NaN NaN –x –x NaN 
    v   +0 | +0 +0 NaN NaN +0 +0 NaN 
    a   –0 | –0 –0 NaN NaN –0 –0 NaN 
    l   +∞ | NaN NaN NaN NaN NaN NaN NaN 
    u   –∞ | NaN NaN NaN NaN NaN NaN NaN 
    e   NaN | NaN NaN NaN NaN NaN NaN NaN 
相關問題