It seems to be similar to this problem described here:
JSF - UIInput component with no input sets String Property to empty string
In my problem, however, I need to know if user has inputted 0.0 or haven't input anything at all. Either way, the setter is passed 0.0.
I manage to solve the problem by changing the getter/setter to String (getDoubleAmt() and setDoubleAmt(String doubleAmt)), and check for empty String inputted as in the link provided. If it is not empty, I will parse the double to the original field (double_amt).
Hope this helps someone facing the same problem.