Click to See Complete Forum and Search --> : Decimal Places

kerouac9

04-10-2002, 04:48 AM

I am doing a simple flash exercise for my job which involves learning about "significant figures" in Maths.For the first box I want the user to input a number which always has a range of 2 decimal places minimum. Then the user chooses how many decimal places the end result is. For example entering 2.759, a user then puts a random number, lets say 2 decimal places and the final result is 2.76. Is there any way of doing this as I am struggling to compose one with the Maths functions available.

Thanks in advance

Matt

DonDanny

04-10-2002, 05:28 AM

If I understood you right (I'm German so sometimes it's a bit tricky to understand all the Mathematical terms in English;)

You need to bring every number you don't want to be rounded before the point so let's say you have 2.759 and want 2.76:

Math.round(2.759*100)/100 = 2.76

if you want it to be one number behind the point:

Math.round(2.759*10)/10 = 2.8

Just choose some 10^x according to how many decimal places you like... got the idea?

ironmallet

04-10-2002, 01:14 PM

are tricky to program.

because 1.5 has two significant figures

1.5000 has 5sf

.00000015 has 2sf

1.0000005 has 8sf

500 has only one! that's a tricky one

50. has two! ugh.

try telling a program that, it can be a pain.

it boils down to

Leading zeros don't count

Trailing zeros do, as long as they are followed by a decimal point, or they follow the decimal point

Middle zeros do

you have to capture the number as a string, evaluate it's value and store that, then crop any leading zeros and count the length of the remaining string without the decimal.

Why do we need sig figs?

the idea is that if you know it's 3383.52 miles to where you are going, and you set you cruise control for 55 mph, how long does it take you to get there?

If you said 61.51854545 hours, you are pretending to know more about the situation than you do, that is, do you really know you arrival time to within a fraction of a second?

So how confident are you? Well, the number in you data with the fewest sfs is 55, which has 2.

So your answer should be 62 hours.

Are you ready for the really odd bit? What if it's a round trip? When you multiply by 2 to get the answer, doesn't 2 just have 1sf?! so do you lose data? No you don't, actually. In this case 2 is not data, it's a pure number, and it's assumed to be 2.000000000000000000000000, or however many trailing zeros are needed to match the precision of the data.

calpomatt

05-30-2005, 01:51 AM

Originally posted by ironmallet

you have to capture the number as a string, evaluate it's value and store that, then crop any leading zeros and count the length of the remaining string without the decimal.

How might you do that.

I'm creating a program right now where this would come in handy. Sometimes the output is of the magnitude 10^-8 and sometimes it's 10^-4. Right now I'm using the Math.round(value*100000000000)/100000000000 to make sure I get a few sig figs if it is 10^-8.

If that was confusing, this is what I mean.

Depending out the numbers input into the equation, the output can be:

1.915e-8

or

1.5424254e-4

Is there a way to make the output:

1.915e-8

or

1.542e-4