Level 1

## Using Conditionals in Velocity (Email Scripting) to Evaluate Greater Than or Less Than with Currency Data

Hi Everyone -

I've been a Marketo User for years, but this is my first post in here, so my sincerest apologies if I'm posting in the wrong place. I was wondering if anyone has ever used Velocity scripting to evaluate greater than or less than statements using velocity scripting. For example, I'd like to display a phrase x if a person most recently has a currency value of x1, but phrase y if they have a currency value if y1. I think I'm running into the issue that I'm evaluating greater than or less than currency values against integers, but for the life of me I can't figure out how to use the Number Tool to convert a stored currency value to an integer. Sample code is highlighted below. Any help would be greatly appreciated!

``````#set ( \$d = "\$")
#set ( \$MRC = \${lead.recentDollarAmount} )
#if( \$MRC > 1001 )
<strong>Phrase 1</strong>
#elseif( \$MRC > 499 && \$MRC < 1001)
<strong>Phrase 2</strong>
#elseif( \$MRC > 99 && \$MRC < 501)
<strong>Phrase 3</strong>
#elseif( \$MRC > 49 && \$MRC < 101)
<strong>Phrase 4</strong>
#elseif( \$MRC > 4 && \$MRC < 11)
<strong>Phrase 5</strong>
#else
<strong>Phrase 6</strong>
#end``````

3 REPLIES 3
Level 10 - Community Moderator

## Re: Using Conditionals in Velocity (Email Scripting) to Evaluate Greater Than or Less Than with Currency Data

There's no problem comparing Floats with Integers*: widening conversion takes care of that.

The question is whether your \$lead.recentDollarAmount is actually a Float. Something tells me it's a String. Which means you want

``#set ( \$MRC = \$convert.toDouble(\$lead.recentDollarAmount) )``

You also don't need the separate variable \$d, as \$esc.d already exists for the literal dollar sign.

except for the inherent problem of using Floats at all

Level 1

## Re: Using Conditionals in Velocity (Email Scripting) to Evaluate Greater Than or Less Than with Currency Data

Thanks Sandy! Much appreciated. It worked in preview when I personalized it to myself, but when I tried to send a personalized sample, I got this error:

An error occurred when procesing the email Rendered_Email_Velocity_Error_Area_?!

Invocation of method 'toDouble' in class org.apache.velocity.tools.generic.ConversionTool threw exception java.lang.NullPointerException near

Do you know what I'm doing wrong?

William

Level 10 - Community Moderator

## Re: Using Conditionals in Velocity (Email Scripting) to Evaluate Greater Than or Less Than with Currency Data

You have to use a real email, not a sample, to test Velocity.