Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 07.05.2017
Сообщений: 19

Почему неправильно перемножаются числа в long ?

07.05.2017, 14:17. Показов 2118. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Умножаю 1000000000 на 14, получаю 1115098112. Что я делаю не так ?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.05.2017, 14:17
Ответы с готовыми решениями:

Неправильно перемножаются матрицы
Можете указать что в коде не так? Почему произведение матриц у меня считается не правильно? Console.Write("Введите количество...

Почему матрицы не перемножаются?
/* Задание: Дано две матрицы . Перемножить матрицы. Умножить полученную матрицу на значение ...

Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в степень p
Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в степень p и возвращает ap. Помогите...

10
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
07.05.2017, 14:27
Видимо что-то делаете не так. Скорее всего умножается таки int
Миниатюры
Почему неправильно перемножаются числа в long ?  
0
0 / 0 / 0
Регистрация: 07.05.2017
Сообщений: 19
07.05.2017, 14:31  [ТС]
Перемножается 1000000000 на переменную в int равное 14, результат присваивается переменной в long
0
215 / 211 / 146
Регистрация: 20.11.2014
Сообщений: 1,184
07.05.2017, 14:32
Попробуйте так
C#
1
2
using System.Numerics;
BigInteger.Multiply(1000000000, 14)
0
0 / 0 / 0
Регистрация: 07.05.2017
Сообщений: 19
07.05.2017, 14:40  [ТС]
Цитата Сообщение от bbq Посмотреть сообщение
Попробуйте так
C#
1
2
using System.Numerics;
BigInteger.Multiply(1000000000, 14)
bbq, не работает.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
07.05.2017, 14:42
Лучший ответ Сообщение было отмечено Qiwnin как решение

Решение

C#
1
2
            long v = 1000000000l * 14;
            Console.WriteLine(v);
1
18 / 18 / 11
Регистрация: 07.09.2015
Сообщений: 33
07.05.2017, 14:44
C#
1
2
3
4
int a = 1000000000;
int b = 14;
long c = (long)a * b;
Console.WriteLine(c);
1
19 / 5 / 1
Регистрация: 28.03.2015
Сообщений: 74
07.05.2017, 14:45
Цитата Сообщение от Someone007 Посмотреть сообщение
C#
1
2
long v = 1000000000l * 14;
Console.WriteLine(v);
Так вот, как написали выше.

Либо вот такое же, только чуть по другому, выражение выше (эквивалетное решение)
C#
1
2
long v = 1000000000 * (long)14;
            Console.WriteLine(v);
Когда ты пытаешься просто написать в переменной типа long обычное значение, то оно является int, и поэтому тебе приходится явно указывать, что тебе нужен другой тип возвращаемого значения
1
0 / 0 / 0
Регистрация: 07.05.2017
Сообщений: 19
07.05.2017, 15:06  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
C#
1
2
            long v = 1000000000l * 14;
            Console.WriteLine(v);
Благодарю

Добавлено через 16 минут
Цитата Сообщение от Someone007 Посмотреть сообщение
C#
1
2
            long v = 1000000000l * 14;
            Console.WriteLine(v);
Еще вопрос, эту приписку l делать только когда переменная типа long выходит за пределы типа int ?
0
19 / 5 / 1
Регистрация: 28.03.2015
Сообщений: 74
07.05.2017, 15:23
Цитата Сообщение от Qiwnin Посмотреть сообщение
Еще вопрос, эту приписку l делать только когда переменная типа long выходит за пределы типа int ?
Как же тебе объяснить.
Смотри:
C#
1
2
3
4
long a = 1000000000;
long b = 14;
long sum = a * b;
Console.WriteLine(sum);
В этом примере нам не нужно ничего приписывать, потому что у нас система понимает, что все значения типа long и возвращает это значение.

А когда ты указываешь
C#
1
2
3
 
long a = 1000000000 * 14;
Console.WriteLine(a);
В C# по умолчанию стоит тип возвращаемого значения типа int32, поэтому когда ты указываешь число, система думает, что у тебя возвращаемое значение должно быть int, из этого получается ошибка и нам нужно либо сделать, чтобы система понимала, что числа стоят типа long приписав суффикс, либо сделав явное преобразование (как в моем примере это было сделано)
вот так:
Цитата Сообщение от bozzly Посмотреть сообщение
long v = 1000000000 * (long)14;
* * * * * * Console.WriteLine(v);
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
07.05.2017, 15:40
Цитата Сообщение от Qiwnin Посмотреть сообщение
эту приписку l делать только когда переменная типа long выходит за пределы типа int ?
Тогда, когда выражение имеет тип int, но его результат выходит за диапазон допустимых значений int.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.05.2017, 15:40
Помогаю со студенческими работами здесь

Почему неправильно отображаются числа?
Почему неправильно отображаются числа? Как привести к нормальному виду?

Максимальная и минимальная цифра числа long long int
Доброго времени суток! Подскажите, пожалуйста, как с помощью цикла (while, do while, for) определить максимальную и минимальную цифры числа...

Проблема с сравнением unsigned long long int числа
Написала программу для перевода чисел типа unsigned long long int с десятичной системы счисления в другую. Хочу сделать проверку оператором...

SimpleDateFormat. Неправильно конвертируется время из String в long
Всем привет. Подскажите, почему следующий код даёт неправильный результат? package testDateTime; import java.text.*; ...

Не понятный undefined reference to `unsigned long long f<unsigned long long, void>
test.cpp: #include &lt;iostream&gt; template &lt;typename FormalType, typename FactType = typename std::enable_if&lt;std::is_same&lt;FormalType,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru