Страница 1 из 2

Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 13:18
VaVter
Я уже 3 часа не могу понять, как это работает.
Почему когда я делю 9 на 10 получаю 0.

В видео ниже, все явно показано

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 14:03
1max1
(float)mana / max_mana;

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 14:29
lawson
Почему когда я делю 9 на 10 получаю 0.

потому что вы делите целые числа.

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 15:01
VaVter
И зачем оно так? Это типо удобно?!
Мне, конечно не сложно поставит float и все заработает. Но реально зачем так? Я о таком и не знал.
На чем я ранее не кодил, везде: int 9 / float 10 = float 0.9

Если кому не сложно объясните зачем это.

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 15:20
waruiyume
А чего вы видео в таком высоком разрешении сняли то? Надо было, помимо того, что без звука, еще и в 240p виде снять- чтоб вообще нихера не было понятно.
Главное текстовый вариант кода не надо постить, ни в коем случае!
А да, ответ 42.

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 15:36
VaVter
waruiyume писал(а):А чего вы видео в таком высоком разрешении сняли то? Надо было, помимо того, что без звука, еще и в 240p виде снять- чтоб вообще нихера не было понятно.
Главное текстовый вариант кода не надо постить, ни в коем случае!
А да, ответ 42.


Дак видосом проще. Разве нет? Зачем мне писать кучу текста, если я могу сделать видос длительностью менее 1 минуты. И мне и вам проще. Единственное, стоило приложить полный код, но я подумал, что не стоит.
Орех звук не пишет, качество стандартное.

А по поводу ответа, я так понимаю, объяснения этому нет.

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 15:54
waruiyume
Есть, во всём виноват сами знаете кто.
Синтаксис:
Используется csharp
Debug.LogFormat("{0} {1}", 9f/10, 9/10f);//0.9 0.9
 

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 16:14
lawson
А по поводу ответа, я так понимаю, объяснения этому нет.

увы машина, в отличие от человека разные типы чисел представляет по разному, отсюда одни и те же операции с ними выполняются тоже по разному.

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

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 16:26
waruiyume
Судя по:
"На чем я ранее не кодил, везде: int 9 / float 10 = float 0.9"
ОП как бы знает, что так бывает, и при помощи телепатии(кода то нет) я предполагаю, что автор думает, что не работает из-за того, что первое число не флот.

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 16:30
VaVter
1max1 писал(а):(float)mana / max_mana;

Я все пофиксил еще после этого сообщения

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 16:35
VaVter
все бы люди вот так отличали:
lawson писал(а):
А по поводу ответа, я так понимаю, объяснения этому нет.

увы машина, в отличие от человека разные типы чисел представляет по разному, отсюда одни и те же операции с ними выполняются тоже по разному.

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


а не так:
waruiyume писал(а):А чего вы видео в таком высоком разрешении сняли то? Надо было, помимо того, что без звука, еще и в 240p виде снять- чтоб вообще нихера не было понятно.
Главное текстовый вариант кода не надо постить, ни в коем случае!
А да, ответ 42.


и не так:
waruiyume писал(а):Есть, во всём виноват сами знаете кто.
Синтаксис:
Используется csharp
Debug.LogFormat("{0} {1}", 9f/10, 9/10f);//0.9 0.9
 

очень информативный текстовый вариант ага

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 16:38
VaVter
VaVter писал(а):На чем я ранее не кодил, везде: int 9 / float 10 = float 0.9

тут я просто ошибся и хотел написать int а не float

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 17:31
1max1
Такой детский вопрос, а столько сообщений...

Re: Какой то бред с арифметикой

СообщениеДобавлено: 25 ноя 2018, 19:36
Friend123
Дык, если вы программист, то должны понимать, что деление - это почти всегда результат float, даже если получается целое. Так не будет ошибок и подобных вопросов.

Re: Какой то бред с арифметикой

СообщениеДобавлено: 26 ноя 2018, 00:51
Woolf
Вообще, конечно, возмущение человека понятно. Этот самый мозголомный и странный "систайл" когда при делении чисел (неважно, целых или дробных) получается целое, когда во многих (да всех) языках при делении получается именно дробное.. Но сишники не ищут легких путей, сказано целое, значит будет целое. И плевать, что из-за этой малости рождено миллионы трудноуловимых багов.