Get a NumericTextbox with currency formatting. If one clicks on the input of the component in the area in front of the currency sign, the caret is positioned before this currency sign. Once the caret is positioned in front of the currency sign, the first entered number won't be applied to the component if you start entering numbers from the keyboard.
When the user enters a number through the keyboard, all its digits should be applied to/accepted by the component, no matter the position of the caret.