# Number

Lets you work with numeric values. The Number object is an object wrapper for primitive numeric values.

#### Created by

The Number constructor:

new Number(value)

#### Description

The primary uses for the Number object are:

The properties of Number are properties of the class itself, not of individual Number objects.

JavaScript 1.2: Number(x) now produces NaN rather than an error if x is a string that does not contain a well-formed numeric literal. For example,

x=Number("three");
document.write(x + "<BR>");
prints NaN

You can convert any object to a number using the top-level Number function.

#### Method Summary

In addition, this object inherits the watch and unwatch methods from Object.

#### Examples

Example 1. The following example uses the Number object's properties to assign values to several numeric variables:

biggestNum = Number.MAX_VALUE
smallestNum = Number.MIN_VALUE
infiniteNum = Number.POSITIVE_INFINITY
negInfiniteNum = Number.NEGATIVE_INFINITY
notANum = Number.NaN
Example 2. The following example creates a Number object, myNum, then adds a description property to all Number objects. Then a value is assigned to the myNum object's description property.

myNum = new Number(65)
Number.prototype.description=null
myNum.description="wind speed"

## constructor

Specifies the function that creates an object's prototype. Note that the value of this property is a reference to the function itself, not a string containing the function's name.

#### Description

See Object.constructor.

## MAX_VALUE

The maximum numeric value representable in JavaScript.

#### Description

The MAX_VALUE property has a value of approximately 1.79E+308. Values larger than MAX_VALUE are represented as "Infinity".

Because MAX_VALUE is a static property of Number, you always use it as Number.MAX_VALUE, rather than as a property of a Number object you created.

#### Examples

The following code multiplies two numeric values. If the result is less than or equal to MAX_VALUE, the func1 function is called; otherwise, the func2 function is called.

if (num1 * num2 <= Number.MAX_VALUE)
func1()
else
func2()

## MIN_VALUE

The smallest positive numeric value representable in JavaScript.

#### Description

The MIN_VALUE property is the number closest to 0, not the most negative number, that JavaScript can represent.

MIN_VALUE has a value of approximately 5e-324. Values smaller than MIN_VALUE ("underflow values") are converted to 0.

Because MIN_VALUE is a static property of Number, you always use it as Number.MIN_VALUE, rather than as a property of a Number object you created.

#### Examples

The following code divides two numeric values. If the result is greater than or equal to MIN_VALUE, the func1 function is called; otherwise, the func2 function is called.

if (num1 / num2 >= Number.MIN_VALUE)
func1()
else
func2()

## NaN

A special value representing Not-A-Number. This value is represented as the unquoted literal NaN.

#### Description

JavaScript prints the value Number.NaN as NaN.

NaN is always unequal to any other number, including NaN itself; you cannot check for the not-a-number value by comparing to Number.NaN. Use the isNaN function instead.

You might use the NaN property to indicate an error condition for a function that should return a valid number.

#### Examples

In the following example, if month has a value greater than 12, it is assigned NaN, and a message is displayed indicating valid values.

var month = 13
if (month < 1 || month > 12) {
month = Number.NaN
alert("Month must be between 1 and 12.")
}

NaN, isNaN, parseFloat, parseInt

## NEGATIVE_INFINITY

A special numeric value representing negative infinity. This value is represented as the unquoted literal "-Infinity".

#### Description

This value behaves slightly differently than mathematical infinity:

Because NEGATIVE_INFINITY is a static property of Number, you always use it as Number.NEGATIVE_INFINITY, rather than as a property of a Number object you created.

#### Examples

In the following example, the variable smallNumber is assigned a value that is smaller than the minimum value. When the if statement executes, smallNumber has the value "-Infinity", so the func1 function is called.

var smallNumber = -Number.MAX_VALUE*10
if (smallNumber == Number.NEGATIVE_INFINITY)
func1()
else
func2()

Infinity, isFinite

## POSITIVE_INFINITY

A special numeric value representing infinity. This value is represented as the unquoted literal "Infinity".

#### Description

This value behaves slightly differently than mathematical infinity:

Because POSITIVE_INFINITY is a static property of Number, you always use it as Number.POSITIVE_INFINITY, rather than as a property of a Number object you created.

#### Examples

In the following example, the variable bigNumber is assigned a value that is larger than the maximum value. When the if statement executes, bigNumber has the value "Infinity", so the func1 function is called.

var bigNumber = Number.MAX_VALUE * 10
if (bigNumber == Number.POSITIVE_INFINITY)
func1()
else
func2()

Infinity, isFinite

## prototype

Represents the prototype for this class. You can use the prototype to add properties or methods to all instances of a class. For information on prototypes, see Function.prototype.

## toSource

Returns a string representing the source code of the object.

toSource()

None

#### Description

The toSource method returns the following values:

This method is usually called internally by JavaScript and not explicitly in code.

Object.toSource

## toString

Returns a string representing the specified Number object.

toString()

#### Description

The Number object overrides the toString method of the Object object; it does not inherit Object.toString. For Number objects, the toString method returns a string representation of the object.

JavaScript calls the toString method automatically when a number is to be represented as a text value or when a number is referred to in a string concatenation.

For Number objects and values, the built-in toString method returns the string representing the value of the number.

You can use toString on numeric values, but not on numeric literals:

// The next two lines are valid
var howMany=10
// The next line causes an error

## valueOf

Returns the primitive value of a Number object.

valueOf()

None

#### Description

The valueOf method of Number returns the primitive value of a Number object as a number data type.

This method is usually called internally by JavaScript and not explicitly in code.

#### Examples

x = new Number();