One reason to prefer solution #2 over the first one is that you will get in trouble if - for some reason - somebody hands a text to the template that cannot be parsed into a decimal. There are a number of possiblities:
- Non-numeric text.
- Number formatted for a different culture.
So type-safety is much better in approach #2. From an architectural point of view the one who fills a template does not need to know the implementation details whereas in approach #1 he or she needs to know that it is required to provide a string that is formatted in a specific way.