Не переводит в дробную переменную


#1

Добрый день всем,у Мея вопрос больше по Xcode , я учусь программировать на с++ , покажу пример я завожу две целочисленные переменные к примеру int a=5,b=2; дальше пишу float x=a/b; он у меня должен вывести ответ 2.5 ,а выводит 2 то есть отбрасывает дробную часть я пробывал все переменные делать типа float тогда выводит 2.5, но он же должен все равно работать и целочисленными переменными и менять их в другие переменные,извените что так все описано я тока учусь , если может кто то помочь буду признателен спасибо


#2

А что Вы видите тут неправильного? В Swift Вам бы вообще явно пришлось потом результат приводить к Float, Double. Деление на множестве целых чисел даёт всегда целое число.

+Лучше использовать double всегда, чем float, если в этом нет РЕАЛЬНОЙ необходимости.


#3

спасибо за ответ,с double тоже самое, ну разве он не должен мне выводит ответ 2.5??


#4

int a=5,b=2;

double res=a/b;
cout <<res; пожалуйста если у вас Xcode скажите какой у вас результат выводит..

#5

Еще раз - деление на множестве целых чисел дает целое число. То есть 2/5 == 0. 1/5 == 0. 6/5 == 1. И так далее. И это логично вполне, что они дают из самого себя ответ.

Изменить поведение можно, приведя одно из чисел к double или еще чему-то.

Заранее предупреждая вопрос - это кстати из математики перешло. 2/5 = 0 и там, а ответ 0.4 - как раз выход за пределы множества.


#6

спасибо я понял)) перевел одну переменную в double а одну оставил int ответ показал 2.5))


#7

C++ менее строг к типам и позволяет множество неявных преобразований, чем Swift. Если у Вас нет реальной необходимости с C++ работать, я бы посоветовал Swift.

И не только по этому - у C++ очень много возможностей и особенностей, которые могут отпугнуть новичка.
Можно почитать это http://en.cppreference.com/w/