2015-11-20 285 views
1

我正在處理的項目需要找到某種方式來驗證模數運算後的變量是number != 0,number > 0number < (0 < x < 1)。我有前兩個理解,但是使用mod運算符來完成第三個是很困難的。如何使用模數運算符來計算小數

本質上講,我希望做的是能夠趕上類似這樣的一個值:

一)2 % 6

B)標誌,並保存事實.333小於1中的可變(布爾)

c)中執行的基礎上的後續動作,變量返回的值小於1。

我有一種感覺,mod運算符本身不能執行此。我正在尋找一種方法來利用其能力來找到餘數,以產生結果。

編輯:這是一些上下文。下面的代碼顯然不會給我想要的。

if (((inGameTotalCoins-1) % (maxPerTurn+1)) < 0){ 
          computerTakenCoins = (inGameTotalCoins - 1); 
          inGameTotalCoins = 1; 
+0

**'2%6 **,**'標記它並存儲.333在變量(布爾)**中小於1的事實。它看起來像你想劃分,但不是模。 –

+0

爲什麼你不能'bool greaterThanOne =((2%6)> 0);'? – MeetTitan

+0

我在問的是如何檢測模運算符的輸出小於1且大於0? – haloux

回答

0

的商爲0(2/6)與小數部分棄去小數部分是0.3333 ...所以你基本上是在談論商的小數部分,而不是模數值。模量可以計算如下:

(a/b) * b + (a % b) = a 
(2/6) * 6 + (2 % 6) = 2 
0 * 6 + (2 % 7) = 2 
(2 % 6) = 2 

* 6進入2個零時間,剩下2個。

0

如何: -

int number1 = 2; 
int number2 = 6; 
float number3 = static_cast<float>(number1)/static_cast<float>(number2); 
bool isfraction = number3 > 0 && number3 < 1; 
if(isfraction){ 
    std :: cout << "true\n" << number3; 
} 
else{ 
    std :: cout << "false" << number3; 
} 
0

number != 0包括number > 0number < (0 x < 1)。並且number > 0包括number < (0 x < 1)。一般來說,我們不這樣分類。例如,人們分類爲number > 0,number == 0number < 0
如果你進行模態操作,你會得到餘數。剩餘的定義不是一回事。你可以看到它在https://en.m.wikipedia.org/wiki/Remainder