The internal workings are not that different, as @James Allardic already answered. There is a difference though. Using parseFloat, a (trimmed) string starting with one or more numeric characters followed by alphanumeric characters can convert to a Number, with Number that will not succeed. As in:

parseFloat('3.23abc'); //=> 3.23
Number('3.23abc'); //=> NaN

In both conversions, the input string is trimmed, by the way:

parseFloat('  3.23abc '); //=> 3.23
Number('   3.23 '); //=> 3.23
Answer from KooiInc on Stack Overflow
Top answer
1 of 5
67

The internal workings are not that different, as @James Allardic already answered. There is a difference though. Using parseFloat, a (trimmed) string starting with one or more numeric characters followed by alphanumeric characters can convert to a Number, with Number that will not succeed. As in:

parseFloat('3.23abc'); //=> 3.23
Number('3.23abc'); //=> NaN

In both conversions, the input string is trimmed, by the way:

parseFloat('  3.23abc '); //=> 3.23
Number('   3.23 '); //=> 3.23
2 of 5
33

No. Both will result in the internal ToNumber(string) function being called.

From ES5 section 15.7.1 (The Number Constructor Called as a Function):

When Number is called as a function rather than as a constructor, it performs a type conversion...

Returns a Number value (not a Number object) computed by ToNumber(value) if value was supplied, else returns +0.

From ES5 section 15.1.2.3 (parseFloat (string)):

... If neither trimmedString nor any prefix of trimmedString satisfies the syntax of a StrDecimalLiteral (see 9.3.1) ...

And 9.3.1 is the section titled "ToNumber Applied to the String Type", which is what the first quote is referring to when it says ToNumber(value).


Update (see comments)

By calling the Number constructor with the new operator, you will get an instance of the Number object, rather than a numeric literal. For example:

typeof new Number(10); //object
typeof Number(10); //number

This is defined in section 15.7.2 (The Number Constructor):

When Number is called as part of a new expression it is a constructor: it initialises the newly created object.

🌐
Medium
medium.com › @maxheadway › the-differences-between-number-and-parsefloat-in-javascript-8ee74b961ed4
The differences between Number() and parseFloat() in Javascript | by Max Headway | Medium
February 19, 2023 - Handling of Non-numeric Characters: parseFloat stops parsing the input string and returns the numeric value parsed up to that point if it encounters a non-numeric character. Number returns NaN if it encounters a non-numeric character.
Discussions

The advantage of using Number() instead of parseInt or parseFloat
What is the advantage of using Number() instead of parseInt or parseFloat? More on sitepoint.com
🌐 sitepoint.com
1
May 30, 2023
Difference parseInt() and parseFloat()
Nadia . is having issues with: Hi! Can anyone explain me the difference between parseInt and parseFloat? Like in what kind of situation should you use each of them? More on teamtreehouse.com
🌐 teamtreehouse.com
3
June 8, 2016
parseFloat alternative?
It's quite obvious that parseFloat can't suddenly start parsing _, as it would likely break the web. However, parsing floats from a string is still a valid use case - and a separate one fro... More on github.com
🌐 github.com
42
May 31, 2017
I want to have a number x and always make it a float, but js is nuts on floats? 🤷‍♂️💁‍♂️🙆‍♂️
Mathematically, there's no difference between 5 and 5.0. This is a concern of formatting the number for display, so as already mentioned, use toFixed or Intl.NumberFormat . More on reddit.com
🌐 r/learnjavascript
36
0
January 31, 2024
🌐
MDN Web Docs
developer.mozilla.org › en-US › docs › Web › JavaScript › Reference › Global_Objects › Number › parseFloat
Number.parseFloat() - JavaScript | MDN
The Number.parseFloat() static method parses an argument and returns a floating point number. If a number cannot be parsed from the argument, it returns NaN.
🌐
Camchenry
camchenry.com › blog › parsefloat-vs-number
parseFloat vs Number: What's the Difference? | Cam McHenry
June 23, 2021 - Both parseFloat and Number can produce numbers from typical strings that represent numbers, but both have some caveats which have to be handled regardless of which you choose, such as parsing non-numeric inputs (like booleans, objects, arrays), ...
🌐
SitePoint
sitepoint.com › javascript
The advantage of using Number() instead of parseInt or parseFloat
May 30, 2023 - What is the advantage of using Number() instead of parseInt or parseFloat?
🌐
MDN Web Docs
developer.mozilla.org › en-US › docs › Web › JavaScript › Reference › Global_Objects › parseFloat
parseFloat() - JavaScript | MDN
It stops at the n character, and treats the preceding string as a normal integer, with possible loss of precision. If a BigInt value is passed to parseFloat(), it will be converted to a string, and the string will be parsed as a floating-point number, which may result in loss of precision as well.
🌐
W3Schools
w3schools.com › jsref › jsref_parsefloat.asp
W3Schools.com
cssText getPropertyPriority() getPropertyValue() item() length parentRule removeProperty() setProperty() JS Conversion ... parseFloat(10); parseFloat("10"); parseFloat("10.33"); parseFloat("34 45 66"); parseFloat("He was 40"); Try it Yourself » · More examples below. The parseFloat() method parses a value as a string and returns the first number.
Find elsewhere
🌐
GeeksforGeeks
geeksforgeeks.org › javascript › javascript-number-parsefloat-method
JavaScript Number parseFloat() Method - GeeksforGeeks
July 11, 2025 - JavaScript parseFloat() Method is used to accept the string and convert it into a floating-point number. If the string does not contain a numeral value or If the first character of the string is not a Number then it returns NaN i.e, not a number.
🌐
Quora
quora.com › What-is-the-difference-in-Javascript-between-Number-parseFloat-and-String-*1
What is the difference in Javascript between Number(), ...
Answer (1 of 2): Number() and parseFloat() are very different in what they do. and while they could be expected to accomplish the same things, there is still some edge differences in what they produce that developers should really be aware of. Overview As a short summary, you can consider in my...
🌐
MeasureThat
measurethat.net › Benchmarks › Show › 555 › 0 › number-vs-vs-parsefloat
Benchmark: Number vs + vs parseFloat - MeasureThat.net
Number vs + vs parseFloat 23 · Number vs + vs parseFloat 235 · Implicit vs parseFloat vs Number string to num · Number vs + vs parseFloat + properties px · Number vs + vs parseFloat v2 · Comments · Do you really want to delete benchmark?
🌐
MSR
rajamsr.com › home › javascript parsefloat(): how to avoid common mistakes
JavaScript ParseFloat(): How to Avoid Common Mistakes | MSR - Web Dev Simplified
January 28, 2024 - If a valid number is found, then it converts it to a floating-point integer. The parseFloat() function in JavaScript returns NaN if the string does not contain a valid number.
🌐
Medium
medium.com › @roy.elaawar › parsefloat-vs-parstint-in-javascript-4f3d345f205f
ParseFloat vs ParseInt in JavaScript | by Roy Elaawar | Medium
November 6, 2023 - It will read from the beginning of the string until it encounters a character that is not a valid part of a floating-point number. parseFloat will always return a floating-point number, even if the input string contains integer values. This is a great choice when you need to parse strings that might contain decimals that you want to preserve.
🌐
Copahost
copahost.com › home › javascript parsefloat: examples and variations of this function
Javascript parseFloat: Examples and variations of this function - Copahost
July 16, 2023 - In the above example, we used the parseFloat method and passed a string value. The string value equals 100. The parseFloat methods an integer value that equals 100. This is how the parseFloat method works in java. A string value containing numbers is passed and a corresponding integer is returned.
🌐
Quora
quora.com › What-is-the-difference-between-parseInt-and-parseFloat-in-JavaScript
What is the difference between parseInt() and parseFloat ...
Answer (1 of 4): In short answer, with [code ]parseInt()[/code] you can parses a string into Integer Number, and with [code ]parseFloat()[/code] you can parses a string into Floating Number.
🌐
MeasureThat
measurethat.net › Benchmarks › Show › 13473 › 0 › number-vs-vs-parsefloat-vs-parseint
Benchmark: Number vs + vs parseFloat vs parseInt - MeasureThat.net
Number vs + vs parseFloat + properties px · Comments · × · Do you really want to delete benchmark? Cancel Delete · × · FAQ: FAQ · Source code: GitHub/MeasureThat.net · Report issues: MeasureThat.net/Issues · Based on: Benchmark.js · Facebook page: https://www.facebook.com/MeasureThat.Net ·
🌐
GitHub
github.com › tc39 › proposal-numeric-separator › issues › 11
parseFloat alternative? · Issue #11 · tc39/proposal-numeric-separator
May 31, 2017 - It's quite obvious that parseFloat can't suddenly start parsing _, as it would likely break the web. However, parsing floats from a string is still a valid use case - and a separate one from "cast this string to a Number". I think there ...
Published   May 31, 2017
🌐
MDN Web Docs
developer.mozilla.org › en-US › docs › Web › JavaScript › Reference › Global_Objects › parseInt
parseInt() - JavaScript | MDN
For example, parseInt("2", 2) returns NaN because 2 is not a valid numeral in the binary number system. Likewise, although 1e3 technically encodes an integer (and will be correctly parsed to the integer 1000 by parseFloat()), parseInt("1e3", 10) returns 1, because e is not a valid numeral in base 10.
🌐
MDN Web Docs
developer.mozilla.org › en-US › docs › Web › JavaScript › Reference › Global_Objects › Number
Number - JavaScript | MDN
Number.parseFloat() and Number.parseInt() are similar to Number() but only convert strings, and have slightly different parsing rules.