# Percentage Discount: Number variable/Numeric Entry has 3 decimal places

Dec 05, 2017

I've created a game which allows the user to work out the discount of items.

For example:

£19.99 with a 70% discount.

The student would enter the answers and then I check and see if they are correct.

I've got variables and triggers to work out the percentage discount and then I check this with the students answers in two NumericEntries.

This is what the user will type and want I would expect to be correct.

Discount = 70% of £19.99 = 13.99

Price with discount = 19.99 - 13.99 = 6

All types of text round numbers to 2 decimal places, so when I write to the screen it looks correct. However when I compare it, I'm getting an incorrect message.

I wrote the calculations to a NumericEntry to see what is going on and I found that the number variables are returning this:

Discount = 70% of £19.99 = 13.993

Price with discount = 19.99 - 13.99 = 5.997

Therefore when I do a numerical comparison, 13.993 does not equal 13.99 hence the error message.

Why do numeric values have 3 decimal places and text have 2? I can't compare them numerically, but I can't convert them to text.

I'm trying to avoid javascript as it doesn't always work on devices.

Can anyone help with this, it's driving me mad.

###### 3 Replies

Hi Jane,

Could you look at the user typing their answers into a numeric entry field vs. a standard text entry? That way they'd be able to type/match the decimal places.

If you're still running into issues with the set up, I'd suggest sharing the .story file here so that folks could take a look at exactly what you have set up!

Hi Ashley,

I fudged it by changing the figures to:

£19.95 with a discount of 40% which gives a discount with 2 decimal places 6.75.

This stops the numeric calculation returning with 3 decimal places which can't compared with a numeric entry with 2 decimal places.

Glad you found something that would work for you Jane!