X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlnumber.pod;h=ffe3ed5b432bdf7e074dc359cada1770909469c7;hb=a22f28a4268aa03ce2bafaf594271b8ff764a5f8;hp=44d921cfe6334ecd0937c6169487c44349486fb4;hpb=0e06870bf080a38cda51c06c6612359afc2334e1;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlnumber.pod b/pod/perlnumber.pod index 44d921c..ffe3ed5 100644 --- a/pod/perlnumber.pod +++ b/pod/perlnumber.pod @@ -4,15 +4,13 @@ perlnumber - semantics of numbers and numeric operations in Perl =head1 SYNOPSIS - $n = 1234; # decimal integer - $n = 0b1110011; # binary integer - $n = 01234; # octal integer - $n = 0x1234; # hexadecimal integer - $n = 12.34e-56; # exponential notation - $n = "-12.34e56"; # number specified as a string - $n = "1234"; # number specified as a string - $n = v49.50.51.52; # number specified as a string, which in - # turn is specified in terms of numbers :-) + $n = 1234; # decimal integer + $n = 0b1110011; # binary integer + $n = 01234; # octal integer + $n = 0x1234; # hexadecimal integer + $n = 12.34e-56; # exponential notation + $n = "-12.34e56"; # number specified as a string + $n = "1234"; # number specified as a string =head1 DESCRIPTION @@ -143,19 +141,43 @@ C. =over 4 -=item Arithmetic operators except, C +=item Arithmetic operators -force the argument into the floating point format. +The binary operators C<+> C<-> C<*> C C<%> C<==> C C> C> +C=> C=> and the unary operators C<-> C and C<--> will +attempt to convert arguments to integers. If both conversions are possible +without loss of precision, and the operation can be performed without +loss of precision then the integer result is used. Otherwise arguments are +converted to floating point format and the floating point result is used. +The caching of conversions (as described above) means that the integer +conversion does not throw away fractional parts on floating point numbers. -=item Arithmetic operators except, C +=item ++ -=item Bitwise operators, C +C<++> behaves as the other operators above, except that if it is a string +matching the format C the string increment described +in L is used. -force the argument into the integer format if it is not a string. +=item Arithmetic operators during C -=item Bitwise operators, C +In scopes where C is in force, nearly all the operators listed +above will force their argument(s) into integer format, and return an integer +result. The exceptions, C, C<++> and C<-->, do not change their +behavior with C -force the argument into the integer format +=item Other mathematical operators + +Operators such as C<**>, C and C force arguments to floating point +format. + +=item Bitwise operators + +Arguments are forced into the integer format if not strings. + +=item Bitwise operators during C + +forces arguments to integer format. Also shift operations internally use +signed integers rather than the default unsigned. =item Operators which expect an integer @@ -180,6 +202,8 @@ Ilya Zakharevich C Editorial adjustments by Gurusamy Sarathy +Updates for 5.8.0 by Nicholas Clark + =head1 SEE ALSO -L +L, L