[comp.lang.perl] my probelm with perl numericals

srid@uswat.uswest.com (Gopal Sridhara) (10/23/90)

Hello
	Can any person answer me why this happens in perl.
	We are running pe3.0 patch level 18.

#!/usr/local/bin/perl

 The script is as follows :
$num1 = 010.0 - 010.0;
print 010.00000;
print "\n";
printf("number1 010.0 - 010.0 in octal:%o decimal:%d  hex:%x\n",$num1,$num1,$num1);
$num1 = (010.0) - (010.0);
printf("number1 010.0 - 010.0 in octal:%o decimal:%d  hex:%x\n",$num1,$num1,$num1);
$num2 = 010.0 - 010;
printf("number2 010.0 - 010 in octal:%o decimal:%d  hex:%x\n",$num2,$num2,$num2);
$num3 = 010 - 010.0;
printf("number3 010 - 010.0 in octal:%o decimal:%d  hex:%x\n",$num3,$num3,$num3);
$num4 = 010.0 - 010.00;
printf("number4 010.0 - 010.00 in octal:%o decimal:%d  hex:%x\n",$num4,$num4,$num4);
$num5 =  01.0 - 01.00;
printf("number5 01.0 - 01.00 in octal:%o decimal:%d  hex:%x\n",$num5,$num5,$num5);
$num6 =  1.0 - 1.00;
printf("number6 1.0 - 1.00 in octal:%o decimal:%d  hex:%x\n",$num6,$num6,$num6);

The output is as follows:

80
number1 010.0 - 010.0 in octal:1320 decimal:720  hex:2d0
number1 010.0 - 010.0 in octal:0 decimal:0  hex:0
number2 010.0 - 010 in octal:110 decimal:72  hex:48
number3 010 - 010.0 in octal:0 decimal:0  hex:0
number4 010.0 - 010.00 in octal:1320 decimal:720  hex:2d0
number5 01.0 - 01.00 in octal:132 decimal:90  hex:5a
number6 1.0 - 1.00 in octal:0 decimal:0  hex:0


Can any perl - expert explain why is this anamoly.

BTW print (010.0) - (010.0)  produces correct output.

Gopal Sridhara
.


srid@uswest.com
303 889 6657