Alguns detalhes no código.

1-Para mim a validação correta do @ValorUnitario deveria ser:

if(ValorUnitario.IsEmpty() || !ValorUnitario.IsFloat()){
   ...

 

2-No momento de escrever os valores ficou faltando o valor do Valor unitário:

Os dados digitados foram:<br />

Código: @Codigo<br />
Nome: @Nome<br />
Valor unitário: @ValorUnitario<br />