Да, это связано с null-безопасностью. Если проигнорировать это, то функция в некоторых случаях может кинуть ArgumentNullException, что не так уж и страшно.
Просто перепишите:
Console.ReadLine() ?? ""
Тогда функция кинет FormatException вместо ANE. Впрочем, можно вместо пустой строки поставить "0", чтобы исключения не было.
Все моменты я взял
отсюда.
float float.Parse(string s)". Как я понял, Шарп нулевую строку не конвертирует в ноль, что вроде логично, а вроде... как ещё предполагается ввод флоата? (знаю что с даблом всё нормы, но дабл тяжелый)