2015-10-13 4 views
-1

В основном, что мне нужно знать:Разделите переменные на int

Я делаю переменное число, это значение, скажем, 1-100. Затем я делаю другое переменное число. Мне нужно знать, если это возможно, чтобы убедиться, что я могу разделить номер 2 на номер 1.

Например: 20/5 = 4

Проблема заключается в том, что я хочу ответ быть внутр. Так что ничего после запятой. Я хочу только два номера, как 20/5, 12/4, 56/8 и не 10/7,13/3 т.д. Так что не нравится:

21/5 = 4,2

Возможно ли это?

+1

Вы пробовали '21/5' вообще? Если так, покажите свой код. Вы хотите округлить или усечь? –

+0

'int/int' выполняет [целочисленное деление] (http://mathworld.wolfram.com/IntegerDivision.html), который всегда игнорирует дробную часть, которая _exactly_ то, что вы хотите. –

+0

Вы ищете [оператор модуля] (https://msdn.microsoft.com/library/0w4e0fzs.aspx)? Как и в 'if (x% y! = 0) {/ * целочисленное деление не будет« точным »* /}'? – Corak

ответ

3

Если оба значения являются integer, и вы их делите. Тогда после запятой ничего не получится.

Вы можете быть в безопасности: int d = x/y; если x, y являются целыми числами.

Random rand = new Random(); 
int x = rand.Next(1, 100); 
int y = rand.Next(1, 100); 

int d = x/y; 

Я просто не хочу, чтобы это сделать, 10/7, 10/5 только 100/20 5/5 30/3, и НЕ 10/7 11/3 8/5

в этом случае вам нужно будет что-то вроде:

Random rand = new Random(); 
int x = rand.Next(1, 100); 
int y = rand.Next(1, 100); 
while (x % y != 0 && x != y) 
{ 
    y = rand.Next(1, 100); 
} 

int d = x/y; 
+0

Да, я знаю, но я хочу, чтобы там не осталось никакого остатка. Потому что, когда я сделаю int d = 10/7 Ответ действительно 1,4 .... –

+0

Там не будет ... так как он всегда будет возвращать целое число ... которое вообще не использует запятую. – kevintjuh93

+0

@KevinTinnemans № '10/7' возвращает' 1', а не '1.4 ....' –

0

мне нужно знать, если это возможно, чтобы убедиться, что я могу разделить число 2 по номеру 1.

Вы можете просто сгенерировать свой первый номер (назовите его 1), затем сгенерируйте второй номер (назовите его temp). Затем вы создадите другой номер (назовите его 2), выполнив 1 * temp. Это позволило бы, чтобы второе число отлично делилось на первое.

Если вы хотите взять неотъемлемую часть деления, просто произведите числа как целые числа и разделите их. Разделение двух целых значений всегда даст другое целое число (то есть остаточная часть будет опущена).

0

Если то, что вы хотите, чтобы проверить, если эти два числа делятся без напоминания, а затем выполнить разделение правильный путь:

Random rnd = new Random(); 

int x = rnd.Next(1, 100); 
int y = rnd.Next(1, 100); 

int i; 
if(x % y == 0) 
{ 
    i = x/y; 
} 
Смежные вопросы