HTML::O...::Number(3)

πŸ“¦ version 0.6.0, in alpine 3.24

✨ HTML::Object::DOM::Number β€” the HTML::O...::Number(3) moment ✨

Okay bestie, this is the User Contributed Perl Documentation for HTML::Object::DOM::Number, and yes, the manual name HTML::O...::Number(3) is getting folded in right here at the top like a little crown. πŸ‘‘

🌸 NAME 🌸

HTML::Object::DOM::Number β€” HTML Object DOM Number.

✨ SYNOPSIS ✨

The whole entrance, in code:

use HTML::Object::DOM::Number;
my $this = HTML::Object::DOM::Number->new ||
    die( HTML::Object::DOM::Number->error, "\n" );

🌈 VERSION 🌈

v0.2.0 β€” that’s the version, periodt. πŸ’…

πŸ¦‹ DESCRIPTION πŸ¦‹

This interface represents and manipulates numbers like 37 or -9.25 β€” literally just numbers doing their little number thing. It inherits from Module::Generic::Number.

πŸ‘‘ PROPERTIES πŸ‘‘

These are the static-ish properties, and they are iconic. Read on, bestie.

🌟 EPSILON 🌟

The smallest interval between two representable numbers β€” the tiny little gap, the micro-vibe. The EPSILON property has a value of approximately 2.22044604925031e-16, or 2^-52.

You do not have to create a HTML::Object::DOM::Number object to access this static property (use HTML::Object::DOM::Number->EPSILON).

Example:

my $result = abs(0.2 - 0.3 + 0.1);

say $result;
# expected output: 2.77555756156289e-17

say $result < HTML::Object::DOM::Number->EPSILON;
# expected output: 1 (i.e. true)

if( !defined( HTML::Object::DOM::Number->EPSILON ) )
{
    HTML::Object::DOM::Number->EPSILON = POSIX::pow(2, -52);
}

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON β€” she has receipts. πŸ’…

🌟 MAX_SAFE_INTEGER 🌟

This represents the maximum safe integer in JavaScript i.e. (2^53 - 1).

However, under perl, it does not work the same way.

Example:

Under JavaScript

const x = Number.MAX_SAFE_INTEGER + 1;
const y = Number.MAX_SAFE_INTEGER + 2;

console.log(Number.MAX_SAFE_INTEGER);
// expected output: 9007199254740991

console.log(x);
// expected output: 9007199254740992

console.log(x === y);
// expected output: true

However, under perl, $x == $y would be false of course.

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER

🌟 MAX_VALUE 🌟

This represents the maximum numeric value representable in JavaScript.

The MAX_VALUE property has a value of approximately 1.79E+308, or 2^64. Values larger than MAX_VALUE are represented as Infinity.

Because MAX_VALUE is a static property of HTML::Object::DOM::Number, you always use it as HTML::Object::DOM::Number-"MAX_VALUE>, rather than as a property of a HTML::Object::DOM::Number object you created.

Example:

if( $num1 * $num2 <= HTML::Object::DOM::Number->MAX_VALUE )
{
    func1();
}
else
{
    func2();
}

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE

🌟 MIN_SAFE_INTEGER 🌟

This represents the minimum safe integer in JavaScript (-(2^53 - 1)).

Because MIN_SAFE_INTEGER is a static property of HTML::Object::DOM::Number, you can use it as HTML::Object::DOM::Number-"MIN_SAFE_INTEGER>, rather than as a property of a HTML::Object::DOM::Number object you created.

Example:

HTML::Object::DOM::Number->MIN_SAFE_INTEGER # -9007199254740991
-(POSIX::pow(2, 53) - 1)                    # -9007199254740991

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER

🌟 MIN_VALUE 🌟

The smallest positive representable number β€” that is, the positive number closest to zero (without actually being zero). Tiny but fierce. 🧚

Example:

if( $num1 / $num2 >= HTML::Object::DOM::Number->MIN_VALUE )
{
    func1();
}
else
{
    func2();
}

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE

🌟 NEGATIVE_INFINITY 🌟

Special value representing negative infinity. Returned on overflow.

Example:

my $smallNumber = (-HTML::Object::DOM::Number->MAX_VALUE) * 2;

if( $smallNumber == HTML::Object::DOM::Number->NEGATIVE_INFINITY )
{
    $smallNumber = returnFinite();
}

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY

🌟 NaN 🌟

Special "Not a Number" value.

This is actually a value exported by POSIX.

Example:

sub sanitise
{
    my $x = shift( @_ );
    if( isNaN($x) )
    {
        return( HTML::Object::DOM::Number->NaN );
    }
    return($x);
}

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/NaN

🌟 POSITIVE_INFINITY 🌟

Special value representing infinity. Returned on overflow.

Example:

my $bigNumber = HTML::Object::DOM::Number->MAX_VALUE * 2;

if( $bigNumber == HTML::Object::DOM::Number->POSITIVE_INFINITY )
{
    $bigNumber = returnFinite();
}

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY

πŸ”₯ METHODS πŸ”₯

Inherits methods from its parent Module::Generic::Number β€” so the method genes are strong. πŸ’…

🌟 isFinite 🌟

Determine whether the passed value is a finite number.

Example:

HTML::Object::DOM::Number->isFinite($value)

HTML::Object::DOM::Number->isFinite(Infinity);  # false
HTML::Object::DOM::Number->isFinite(NaN);       # false
HTML::Object::DOM::Number->isFinite(-Infinity); # false

HTML::Object::DOM::Number->isFinite(0);         # true
HTML::Object::DOM::Number->isFinite(2e64);      # true

HTML::Object::DOM::Number->isFinite('0');       # false, would've been true with
                                                # global isFinite('0')
HTML::Object::DOM::Number->isFinite(undef);     # false, would've been true with
                                                # global isFinite(undef)

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite

🌟 isInteger 🌟

Determine whether the passed value is an integer.

Example:

HTML::Object::DOM::Number->isInteger(value)

HTML::Object::DOM::Number->isInteger(0);           # true
HTML::Object::DOM::Number->isInteger(1);           # true
HTML::Object::DOM::Number->isInteger(-100000);     # true
HTML::Object::DOM::Number->isInteger(99999999999999999999999); # true

HTML::Object::DOM::Number->isInteger(0.1);         # false
HTML::Object::DOM::Number->isInteger(Math->PI);    # false

HTML::Object::DOM::Number->isInteger(NaN);         # false
HTML::Object::DOM::Number->isInteger(Infinity);    # false
HTML::Object::DOM::Number->isInteger(-Infinity);   # false
HTML::Object::DOM::Number->isInteger('10');        # false
HTML::Object::DOM::Number->isInteger(true);        # false
HTML::Object::DOM::Number->isInteger(false);       # false
HTML::Object::DOM::Number->isInteger([1]);         # false

HTML::Object::DOM::Number->isInteger(5.0);         # true
HTML::Object::DOM::Number->isInteger(5.000000000000001);  # false
HTML::Object::DOM::Number->isInteger(5.0000000000000001); # true

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger

🌟 isNaN 🌟

Determine whether the passed value is NaN.

Example:

HTML::Object::DOM::Number->isNaN(value)

HTML::Object::DOM::Number->isNaN(NaN);              # true
HTML::Object::DOM::Number->isNaN(HTML::Object::DOM::Number->NaN); # true
HTML::Object::DOM::Number->isNaN(0 / 0);            # true

# e->g. these would have been true with global isNaN()
HTML::Object::DOM::Number->isNaN('NaN');            # false
HTML::Object::DOM::Number->isNaN(undefined);        # false
HTML::Object::DOM::Number->isNaN({});               # false
HTML::Object::DOM::Number->isNaN('blabla');         # false

# These all return false
HTML::Object::DOM::Number->isNaN(true);
HTML::Object::DOM::Number->isNaN(undef);
HTML::Object::DOM::Number->isNaN(37);
HTML::Object::DOM::Number->isNaN('37');
HTML::Object::DOM::Number->isNaN('37.37');
HTML::Object::DOM::Number->isNaN('');
HTML::Object::DOM::Number->isNaN(' ');

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN

🌟 isSafeInteger 🌟

Determine whether the passed value is a safe integer (number between -(2^53 - 1) and 2^53 - 1).

Example:

HTML::Object::DOM::Number->isSafeInteger(3);                     # true
HTML::Object::DOM::Number->isSafeInteger(POSIX::pow(2, 53));     # false
HTML::Object::DOM::Number->isSafeInteger(POSIX::pow(2, 53) - 1); # true
HTML::Object::DOM::Number->isSafeInteger(NaN);                   # false
HTML::Object::DOM::Number->isSafeInteger(Infinity);              # false
HTML::Object::DOM::Number->isSafeInteger('3');                   # false
HTML::Object::DOM::Number->isSafeInteger(3.1);                   # false
HTML::Object::DOM::Number->isSafeInteger(3.0);                   # true

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger

🌟 parseFloat 🌟

Provided with a value and this will return a new HTML::Object::DOM::Number object.

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseFloat

🌟 parseInt 🌟

Provided with a value and this will return a new HTML::Object::DOM::Number object.

See also Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt

πŸ’Œ AUTHOR πŸ’Œ

Jacques Deguest <jack@deguest.jp> β€” yes, that’s the author line, bestie.

πŸ“ SEE ALSO πŸ“

Mozilla documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number β€” and Machine::Epsilon.

Copyright(c) 2021 DEGUEST Pte. Ltd.

All rights reserved

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


πŸ’Œ Footer sign-off: perl v5.42.2 Β· 2026-02-15 Β· HTML::O...::Number(3). Bye bestie, go manipulate some numbers! πŸ’–βœ¨

πŸ“¦ where this page comes from