.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "JE::Number 3pm" .TH JE::Number 3pm "2023-08-25" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" JE::Number \- JavaScript number value .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use JE; \& use JE::Number; \& \& $j = JE\->new; \& \& $js_num = new JE::Number $j, 17; \& \& $perl_num = $js_num\->value; \& \& $js_num\->to_object; # returns a new JE::Object::Number .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This class implements JavaScript number values for \s-1JE.\s0 The difference between this and JE::Object::Number is that that module implements number \&\fIobjects,\fR while this module implements the \fIprimitive\fR values. .PP Right now, this module simply uses Perl numbers underneath for storing the JavaScript numbers. It seems that whether Perl numbers are in accord with the \s-1IEEE 754\s0 standard that ECMAScript uses is system-dependent. If anyone requires \s-1IEEE 754\s0 compliancy, a patch would be welcome. :\-) .PP The \f(CW\*(C`new\*(C'\fR method accepts a global (\s-1JE\s0) object and a number as its two arguments. If the latter is an object with a \f(CW\*(C`to_number\*(C'\fR method whose return value isa JE::Number, that object's internal value will be used. Otherwise the arg itself is used. (The precise details of the behaviour of \f(CW\*(C`new\*(C'\fR when the second arg is a object are subject to change.) It is numified Perl-style, so 'nancy' becomes NaN and 'information' becomes Infinity. .PP The \f(CW\*(C`value\*(C'\fR method produces a Perl scalar. The \f(CW\*(C`0+\*(C'\fR numeric operator is overloaded and produces the same. .PP Stringification and boolification are overloaded and produce the same results as in JavaScript .PP The \f(CW\*(C`typeof\*(C'\fR and \f(CW\*(C`class\*(C'\fR methods produce the strings 'number' and \&'Number', respectively. .SH "SEE ALSO" .IX Header "SEE ALSO" .IP "\s-1JE\s0" 4 .IX Item "JE" .PD 0 .IP "JE::Types" 4 .IX Item "JE::Types" .IP "JE::Object::Number" 4 .IX Item "JE::Object::Number"