Linux Ask!

Linux Ask! is a Q & A web site specific for Linux related questions. Questions are collected, answered and audited by experienced Linux users.

Linux Ask!

Apr 282010
 

Floating point precision in PHP

Answer:

It is typical that simple decimal fractions like 0.1 or 0.7 cannot be converted into their internal binary counterparts without a small loss of precision. This can lead to confusing results: for example, floor((0.1+0.7)*10) will usually return 7 instead of the expected 8, since the internal representation will be something like 7.9.

E.g.

$a = 0.1;
$b = 0.7;

print $a + $b;
print (( $a + $b ) * 10);

Reference: http://www.php.net/manual/en/language.types.float.php

So, never compare two floating numbers in your program.

Apr 262010
 

Faster string length testing in PHP

Answer:

If you want to ensure a string variable has a particular length, you might use strlen


if ( strlen($str) > 10 ) {
    // ...
}

A faster approach is to use isset


if ( isset($str[10]) ) {
    // ...
}
Apr 252010
 

eq vs == in Perl

Answer:

1. eq

It perform string comparison.

my $foo = "123";
my $bar = "123";

print $foo eq $bar; # output "1"

2. ==

It perform numeric comparison, string is first converted to numeric value before compare.

my $foo = "foo";
my $bar = "bar";

print $foo == $bar; # output "1", since 0 = 0 as strings are converted to 0 in both variables