Плавающая точка имеет ограниченную точность и основана на двоичном, а не на десятичном виде. Десятичное число 13,45 не может быть точно представлено в двоичной форме с плавающей запятой, поэтому округляется вниз. Умножение на 20 еще больше увеличивает потерю точности. На данный момент у вас есть 268,999 ... а не 269, поэтому преобразование в целочисленные усекается до 268.
Чтобы получить округление до ближайшего целого числа, вы можете попробовать добавить 0,5 до преобразования обратно в целое число.
Для "идеальной" арифметики вы можете попробовать использовать десятичный или рациональный числовой тип - я считаю, что в C # есть библиотеки для обоих, но я не уверен. Однако они будут медленнее.
РЕДАКТИРОВАТЬ - Я нашел пока "десятичный" тип, но не рациональный - я могу ошибаться по поводу того, что он доступен. Десятичное число с плавающей запятой является неточным, точно так же как двоичное число, но к этому мы привыкли, и оно дает менее удивительные результаты.