Enjoy an ad free experience by logging in. Not a member yet? Register.

Results 1 to 7 of 7

05022012, 04:38 AM #1
 Join Date
 Oct 2011
 Location
 Geraldton, Ontario
 Posts
 155
 Thanks
 1
 Thanked 1 Time in 1 Post
What are the differences and similarities of parsefloat() and parseint()?
Hello,
As a novice, I'm not sure which one to use though. I'm trying to do a calculation with numbers in JavaScript using variables, particularly adding variables. Any guided understanding of this concept is welcome.
For example:
Code:n = parseint(n) document.write(n += m)
05022012, 07:49 AM
#2
 Join Date
 Jun 2002
 Location
 London, England
 Posts
 18,079
 Thanks
 203
 Thanked 2,542 Times in 2,520 Posts
As its name implies, parseInt() parses a string value and returns an integer. Syntax: parseInt(string, radix)
If the radix parameter is omitted, JavaScript assumes the following:
 If the string begins with "0x", the radix is 16 (hexadecimal)
 If the string begins with "0", the radix is 8 (octal). This feature is deprecated
 If the string begins with any other value, the radix is 10 (decimal)
parseFloat() returns the real (decimal or floating point) value of the number parsed from a string value. If the first character in the string is a number, it parses the string until it reaches the end of the number, and returns the number as a number, not as a string.
You should also take a look at the Number() function.
Note that as always Javascript is casesensitive and parseint will return an error.
"We have to remember that horses are only human ...."  Racing commentator
All the code given in this post has been tested and is intended to address the question asked.
Unless stated otherwise it is not just a demonstration.
05022012, 07:59 AM
#3
 Join Date
 Jan 2010
 Location
 Behind the Wall
 Posts
 3,342
 Thanks
 13
 Thanked 349 Times in 345 Posts
note: although parseInt() parses the input as Integer, the number returned is a float* (because float (IEEE 754 double) is the only datatype for numbers in JavaScript)
*  might be important for large integers
The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.André Behrens, NY Times Software Developer
05022012, 09:40 AM
#4
 Join Date
 Sep 2005
 Location
 Sydney, Australia
 Posts
 6,642
 Thanks
 0
 Thanked 649 Times in 639 Posts
parseFloat() handles very small numbers and very big numbers
 eg parseFloat('1e100') returns the same number (1 googol  1 followed by a hundred 0) as
Math.pow(10,100) but without having to calculate what 10 to the 100th power is.
parseInt() handles number bases between 2 and 36 to convert numbers to base 10
 for example parseInt('100',2) returns 4 and parseInt('ff',16) returns 255 and parseInt('z',36) returns 35.
As a side effect both drop any characters from the end that are not numbers
 eg parseInt('39',8) will return 3 and ignore the 9
This side effect is useful when processing style related numbers eg. parseInt('250px',10) returns 250.
If you just want to convert a string to a number without the number being very big/small or in a different number base then Number() is the function to use as it just handles regular numbers without all the extra overheads needed to handle numbers such as '1.35e25' and '0xffaa'
 for example Number('120') returns 120.
Last edited by felgall; 05022012 at 09:57 AM.
Stephen
Learn Modern JavaScript  http://javascriptexample.net/
Helping others to solve their computer problem at http://www.felgall.com/
Don't forget to start your JavaScript code with"use strict";
which makes it easier to find errors in your code.
05022012, 08:59 PM
#5
 Join Date
 Oct 2011
 Location
 Geraldton, Ontario
 Posts
 155
 Thanks
 1
 Thanked 1 Time in 1 Post
I am grateful for the thorough replies.
Well, I did get an error in the function I was writing, and forget to make the 'F' or 'I' upper case. Sometimes I try to figure out what was wrong with the code, after looking at the misguided JavaScript errors from the HTMLKit software I was using.
Good to know.
I did not realize that there is so much to JavaScript functions, like the parseInt('39',8), rather than just putting a single value. I do find the Number() function very simple to use.
Last edited by Taro; 05022012 at 09:03 PM.
05022012, 10:18 PM
#6
 Join Date
 Sep 2005
 Location
 Sydney, Australia
 Posts
 6,642
 Thanks
 0
 Thanked 649 Times in 639 Posts
You need to specify two parameters when calling parseInt as otherwhise it tries to guess the number base from the content  as Philip mentioned in his earlier post. By specifying the base in the second parameter you avoid the number being misinterpreted.
A common error is people using parseInt to convert a day or month string into a number instead of simply using Number(). Where the day or month is '08' or '09' then some browsers will assume the leading zero makes the number octal rather than decimal and since in base 8 you count 01, 02, 03, 04, 05, 06, 07, 010, 011 and there are no such numbers as 8 and 9 the person who wrote the code is left wondering why they are getting 0 when they expected 8 or 9. Specifying the second parameter as 10 resolves it  althougfh simply substituting Number() is an even more efficient resolution.
parseInt('39',8) is an example of the side effect that parseInt and parseFloat have where any nonnumeric portion on the right of the number is simply discarded. In this example the returned value is 3 and the 9 is discarded since 9 is not a number in octal  just as with parseInt('08') the value returned might be zero if the browser interprets the leading zero as an indicator that the number is octal (not all browsers treat a leading 0 as octal so the result returned could be either 0 or 8 depending on the browser  there are even some browsers that would return 8 if you are using strict JavaScript and 0 if you didn't specify "use strict")..
Last edited by felgall; 05022012 at 10:21 PM.
Stephen
Learn Modern JavaScript  http://javascriptexample.net/
Helping others to solve their computer problem at http://www.felgall.com/
Don't forget to start your JavaScript code with"use strict";
which makes it easier to find errors in your code.
05032012, 08:20 AM
#7
 Join Date
 Jun 2002
 Location
 London, England
 Posts
 18,079
 Thanks
 203
 Thanked 2,542 Times in 2,520 Posts
In short, if you do use parseInt(), you must always specify the radix (normally 10).
Number() is normally the best choice.
All the code given in this post has been tested and is intended to address the question asked.
Unless stated otherwise it is not just a demonstration.