Технически это зависит от языка, но почти все языки относятся к этому предмету одинаково.В случае несоответствия типов между двумя типами данных в выражении большинство языков пытаются преобразовать данные на одной стороне =
, чтобы сопоставить данные на другой стороне в соответствии с набором предопределенных правил.
При делении двух чисел одного типа (целых, двойных и т. Д.) Результат всегда будет одного и того же типа (поэтому int / int всегда будет приводить к int).
В этом случаеу вас есть double var = integer result
, который приводит к целочисленному результату двойному после вычисления , и в этом случае дробные данные уже потеряны.(большинство языков будет выполнять это приведение, чтобы предотвратить неточности типа без возникновения исключения или ошибки).
Если вы хотите сохранить результат в двойном размере, вы захотите создать ситуацию, в которой у вас естьdouble var = double result
Самый простой способ сделать это - заставить выражение в правой части уравнения привести к удвоению:
c = a/(double)b
Деление междуinteger и double приведут к приведению целого числа к двойному (обратите внимание, что при выполнении математических операций компилятор часто «переводит» к наиболее конкретному типу данных, чтобы предотвратить потерю данных).
После преобразования, a
окажется двойным, и теперь у вас есть деление на два двойных.Это создаст желаемое разделение и назначение.
СНОВА, обратите внимание, что это зависит от языка (и может даже зависеть от компилятора), однако почти все языки (конечно, все те, которые я могу)подумай над головой) относись к этому примеру одинаково.