Возможно ли изменить тип переменной?

  • 154 Просмотры
  • Последний пост 28 августа 2017
Артём Мацун разместил пост 04 ноября 2016

Допустим создаём 3 переменных

int rez, arg2, arg1;

arg1 = 5;

arg2 = 2;

// double rez; - ошибка

rez = (double ) arg1 / arg2;

 

Можно ли сделать как нибудь преобразование переменной rez из инт в дабл? Чтобы при делении двух аргументов в rez присволось число 2,5 а не просто 2. Или тут только вариант создать ещё одну переменную, новую уже типа дабл?

 

Отсортировать по: Стандартный | Последний | Голоса
Seva 1986 разместил пост 04 ноября 2016

1)

int  arg2, arg1;

            double rez;

 

            arg1 = 5;

 

            arg2 = 2;

 

            rez = (double)arg1 / arg2;

 

            Console.WriteLine(rez);

 

2)

dynamic rez, arg2, arg1;

 

            arg1 = 5;

 

            arg2 = 2;

 

            rez = (double)arg1 / arg2;

 

            Console.WriteLine(rez);

 

 

 

  • Пост понравился
  • Leonid Petrov
  • Vladimir Kapustin
Андрей Ахаимов разместил пост 25 июня 2017

А такой вариант приемлем?           

            dynamic arg2, arg1;

            arg1 = 5;

            arg2 = 2;

            Console.WriteLine((double)arg1 / (double)arg2);

Vladimir Kapustin разместил пост 07 июля 2017

Конечно приемлем, но не отвечает ТЗ.

Олег Пустовой разместил пост 28 августа 2017

Арифметическая операция из 2 интов всегда будет инт, если хотя бы один из операндов будет float или double, соответсвенно результат операции будем с больщим разрядом(большей точности или диапазона).

short + int -> int
int + double -> double
float + double -> double

Но есть исключения
byte + short -> int
short + short -> int

  • Пост понравился
  • Виталий Першин
Close