Зависит от того, что понимать под переменной и о каком языке программирования идёт речь.
Например, в паскале, C/C++ переменная имеет строго заданный при создании переменной тип, поэтому в переменную можно "положить" только такие значения, которые совпадают с типом переменной или из которых компилятор может получить нужный тип. Поскольку преобразование из строки в число компиляторы делать не умеют (хотя бы потому, что это можно делать разными способами: шаманить с кодами символов, распознать из цифр и т.д.), то НЕТ, нельзя.
Например, в питоне переменные отличаются от того, что под ними понимают в C++. Здесь переменная - скорее имя, которое указывает на область памяти, в которой расположено значение вместе с типом. Поэтому там нет ничего зазорного в том, чтобы сначала записать в переменную число, а потом строку (хоть это скорее всего больше запутает, чем поможет) - переменная это просто имя, указывающее на место в памяти, а лежать там может всё, что угодно