Hi all,
how can I format a number in lead database like 58.5123434565 into 58,51 within the email?
I want to use it as currency in emails with comma (german way of writing).
I tried with the script token, but apparently it didn't work.
$math.roundTo( x, y )
Can you guys please help me on that? (I'm not a developer )
Best
Christin
Solved! Go to Solution.
You didn't specify banker's rounding or arithmetic rounding.
Either way you need a locale-specific format for Germany (de_DE).
Banker's rounding is the default mode (note this not a Marketo-specific thing, nor a Velocity thing, but across anything built on the Java foundation):
#set( $customFormat = $number.getNumberFormat("${esc.h}${esc.h},${esc.h}${esc.h}${esc.h}.00", $convert.toLocale("de_DE") ) )
banker's: ${customFormat.format($lead.SomeField)}
If you need arithmetic rounding (if neither you nor your manager is a developer or accountant, you probably meant arithmetic):
#set( $customFormat = $number.getNumberFormat("${esc.h}${esc.h},${esc.h}${esc.h}${esc.h}.00", $convert.toLocale("de_DE") ) )
#set( $void = $customFormat.setRoundingMode($field.in($customFormat.getRoundingMode()).HALF_UP) )
arithmetic: ${customFormat.format($lead.SomeField)}
Update 2019-12-07: please read responses to your threads, it's very frustrating to take time to provide Correct answers and have the thread abandoned.
You didn't specify banker's rounding or arithmetic rounding.
Either way you need a locale-specific format for Germany (de_DE).
Banker's rounding is the default mode (note this not a Marketo-specific thing, nor a Velocity thing, but across anything built on the Java foundation):
#set( $customFormat = $number.getNumberFormat("${esc.h}${esc.h},${esc.h}${esc.h}${esc.h}.00", $convert.toLocale("de_DE") ) )
banker's: ${customFormat.format($lead.SomeField)}
If you need arithmetic rounding (if neither you nor your manager is a developer or accountant, you probably meant arithmetic):
#set( $customFormat = $number.getNumberFormat("${esc.h}${esc.h},${esc.h}${esc.h}${esc.h}.00", $convert.toLocale("de_DE") ) )
#set( $void = $customFormat.setRoundingMode($field.in($customFormat.getRoundingMode()).HALF_UP) )
arithmetic: ${customFormat.format($lead.SomeField)}
Update 2019-12-07: please read responses to your threads, it's very frustrating to take time to provide Correct answers and have the thread abandoned.
I'm sorry, I was sick.
Thank you very much for your answer!
Thanks for checking back, I appreciate it.
Hi there,
This is very helpful for an issue I am having, I think it is just about what I need. I have a "float" field which I need to round to the nearest whole number. Can I use some aspect of this to get there?
I am trying to use a Script Token as such:
#set( $customFormat = $number.getNumberFormat("${esc.h}${esc.h},${esc.h}${esc.h}${esc.h}.00", $convert.toLocale("de_DE") ) )
banker's: ${customFormat.format(${lead.lMavgcallduration})}
However, I am getting this error when I try to send myself a test:
Invocation of method 'format' in class java.text.DecimalFormat threw exception java.lang.IllegalArgumentException: Cannot format given Object as a Number near ?
Any ideas on what my issue might be?
Thanks a ton,
Austin