В чем лучше хранить числа в C#?
Забейте, это ненужное байстоебство. После всех оптимизаций вы выиграете 1кб памяти, которые с лихвой перекроет несобранный мусор.
Странный вопрос. Как и база данных, в которой числа хранятся в стринге, как и программа, которая оперирует числами в стринге.
Это сделано чтобы "сэкономить" на конвертации числа при выводе на экран?
Выгода, да и то сомнительная, от этого может быть только, если с числами не производятся никаких манипуляций, а только вывод на экран из базы данных. 
Ну и плюс ещё для очень больших цифр. На в этом случае используют другие алгоритмы и формат данных в памяти.
По теме:
Число занимет 4 байта как в базе так и в памяти, а  строка "1000000000" от 11 до 26 байт, в зависимости от типа стринга.
Почитай о работе с памятью, о структуре разных типов данных. Сразу отпадут подобные вопросы.