is there any easy and clean solution to have two different formatting for different numbers.  

E.g. 0.00 should be 0 and all other numbers should be x.xxx. 

My solution so far:

```
select decode(to_char(0.000, '90D999'),'0.000', 0, (to_char (0.000, '99990D99999'))) from dual

```

I am not happy, because I think there is an easier solution.