Многие люди рекомендуют вам использовать библиотеку Math для округления вашего числа, но даже это может привести к очень незначительным ошибкам округления.
Math.Round может, а иногда и возвращает числа с конечными нулями и очень маленькими ошибками округления. Это связано с тем, что внутренне числа с плавающей запятой и числа с двойными числами по-прежнему представлены в виде двоичных чисел, и поэтому часто бывает трудно точно представить некоторые небольшие десятичные числа.
Ваш лучший вариант - либо использовать только форматирование строк, либо, если вы действительно хотите, чтобы он действительно округлялся, объединить два:
Math.Round(val, 2).ToString("0.00")