Below is a link for a little sample and here is the behavior I see in it.
If the data already has a zero in it, then just setting the format was engough to get the desired display.
If I type a zero into a cell, the display is also okay just setting the format.
But if I type a minus sign into the cell, then I do see an eception only using the format. If you want your user to be able to type a minus and have it actually put the value zero into the datasource (and hence make the formatted cell display - ), then you can handle the model.SaveCellFormattedText to do this. This event is shown in the sample.
ggc_zero_419.zip