Почему делает Математику. Пол (Дважды) возвращает значение типа Дважды?

Короткий ответ: Вы не можете. Диалоговые окна JavaScript являются основными.

Вы можете VBScript использования метод MsgBox для создания пользовательского диалогового окна , но это будет только работать над Internet Explorer с включенным VBScript. Не межплатформенный; не рекомендуемый.

альтернатива должна фальсифицировать его в HTML, который большое количество библиотек Javascript обеспечивают встроенный функциональность для .

97
задан radbyx 29 December 2018 в 21:34
поделиться

5 ответов

Диапазон double намного шире, чем диапазон int или long . Рассмотрим этот код:

double d = 100000000000000000000d;
long x = Math.Floor(d); // Invalid in reality

Целое число находится за пределами диапазона long - чего же вы ожидаете?

Обычно вы знаете, что значение на самом деле будет в пределах диапазон int или long , поэтому вы приводите его:

double d = 1000.1234d;
int x = (int) Math.Floor(d);

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

135
ответ дан 24 November 2019 в 05:28
поделиться

Согласно MSDN, Math.Floor (double) возвращает двойной: http://msdn.microsoft.com/en-us/library/e0b5f0xb.aspx

Если вы хотите его как int:

int result = (int)Math.Floor(yourVariable);

Я вижу, что статья MSDN может вводить в заблуждение, они должны были указать, что хотя результат является «целым числом» (в данном случае означает целое число), он все еще имеет тип TYPE Double

11
ответ дан 24 November 2019 в 05:28
поделиться

Если вам нужна просто целая часть числа, преобразуйте число в int . Это приведет к усечению числа до десятичной точки.

double myDouble = 4.6;
int myInteger = (int)myDouble;
4
ответ дан 24 November 2019 в 05:28
поделиться

Верно. Глядя на объявление, Math.Floor (double) возвращает значение double (см. http://msdn.microsoft.com/en-us/library/e0b5f0xb.aspx ). Я предполагаю, что под «целым числом» они подразумевают «целое число».

0
ответ дан 24 November 2019 в 05:28
поделиться

Этаж оставляет его двойным, поэтому с ним можно делать больше двойных вычислений. Если вы хотите, чтобы это было int, передайте результат floor как int. Не преобразовывайте исходный double как int, потому что правила для пола другие (IIRC) для отрицательных чисел.

0
ответ дан 24 November 2019 в 05:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: