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