2011-04-12 54 views

回答

0

使用標準模運算符%有問題嗎?

double c = a%b; 
+2

是的,有:'第4行:錯誤:類型爲'double'和'double'的無效操作數爲二進制'operator%'' – 2011-04-12 05:32:20

+2

MSDN不同意 - http://msdn.microsoft.com/en-us/ library/0w4e0fzs.aspx我也很肯定我之前在C#中用過很多次,有過多次雙打。 – tamarintech 2011-04-12 05:34:38

+0

我的歉意,我誤解了標籤,並認爲這是一個C++問題。 – 2011-04-12 05:35:23

1

即使世界可能是一個功能的地方,但下面的是等效,很簡單:

a - b*(Math.Floor(a/b)) 

a % b

在舊的C math.h具有的功能fmod。 c#甚至會允許你使用它?我不知道任何一種方式。

PS - 你確定%運營商不工作?

0
float x = 5.1F; 
    float y = 2.3F; 
    float t = x % y;     
1

浮點數/雙數是從不精確值,因此%運算符將無法一致地工作。改爲使用decimal使模數運算符適用於實數。

decimal a, b c; 
a = 32.3M; 
b = 3.23M; 

c = a % b; //c should be zero. 

編輯

檢查Avoid modulus operator with types float and double部分(底頁)的MSDN上。