Проблема в том, что 273.15 - это двойное число, а не число с плавающей запятой, и ни один из них не может точно представлять 273.15. Однако, поскольку они имеют разную точность, они на самом деле будут хранить разные числа. Когда сложение завершено, c преобразуется в double, который сможет хранить представление с плавающей точкой 273.15. Так что теперь у вас есть два двойных с почти одинаковым значением, и разница будет отлична от нуля.
Чтобы получить «более предсказуемый» результат, используйте 273.15f, чтобы убедиться, что у вас есть плавающие результаты вычислений. Это должно решить эту проблему, но вам нужно прочитать двоичную арифметику с плавающей запятой и узнать, чем она отличается от десятичной арифметики, которой нас учат в школе.
Вики с плавающей запятой хорошее место для начала.