Double # показывает 0 на андроид - PullRequest
2 голосов
/ 08 января 2011

Мне стыдно задавать этот вопрос, но после 45 минут отсутствия решения я прибегну к публичному унижению.

У меня есть число, которое делится на другое число, и я храню это число в двойной переменной.Числа генерируются случайным образом, но отладка приложения показывает, что оба числа фактически генерируются.

Давайте просто скажем, что числа 476 и 733. Затем я беру числа и делю их, чтобы получить процент 476/733 = .64

Затем я распечатываю переменную, и она всегда установленадо 0. Я пытался использовать DecimalFormat и NumberFormat.Независимо от того, что я пытаюсь, хотя всегда указывается, что переменная равна 0. Я знаю, что я упускаю что-то простое, но я просто не могу найти это = /.

Ответы [ 2 ]

10 голосов
/ 08 января 2011

Я предполагаю, что вы пытаетесь сделать что-то вроде этого:

int x = 476;
int y = 733;
double result = x / y;     // result == 0

Проблема здесь в том, что вы выполняете целочисленное деление, которое дает ответ 0, а затем преобразовывает результат в двойное число.Вам нужно преобразовать одно или оба числа в числа с плавающей запятой до деления.Вот один из способов сделать это:

int x = 476;
int y = 733;
double result = ((double)x) / y;
0 голосов
/ 08 января 2011

Я предполагаю, что 2 числа, которые делятся, являются "двойными" типами?

Использовали ли вы режим отладки, чтобы увидеть результат деления?

...