Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×

Comment Re: Exact mathematical value isn't the ideal (Score 1) 239

They aren't. When you start adding up a lot of cents you end up, invariably, with rounding errors. FPs are not intended for this task.

The way they intended to deal with this issue back then was to round down results to x decimals, just to make sure the clients weren't charged extra. And even that wasn't enough.

Comment Re:Exact mathematical value isn't the ideal (Score 1) 239

Ditto. Not only that, i'm amazed by the number of programmers who don't properly understand floating point arithmetic either.

A long time ago i had to write a C/C++ fixed-point arithmetic library for a (major) telecom company because their billing processes would routinely output totals with cent errors; over a full year these added up to a significant ammount of money, a-la-Superman III. No one even had a clue of why their processes failed.

Comment Re:Alternative headline (Score 1) 429

Because I have every right to use the network as the guy making it impossible for me to use it.

Then, by your own logic, you're not justified to use bithammer. I hate to play the devil's advocate here, but OzPeter makes a damn good point. If a BT user really prevents you from feeding your family then you should consider an alternative other than McDonalds in the first place.

Comment Re:PHP? (Score 1) 213

In ways you cannot undersand, evidently. The distinction on C when comparing type-casted operands is precisely because casting is guaranteed to destroy precision - operands are effectively modified in the process. This has NOTHING to do with the way relational operators work: they behave in a sane way, like they do in every other language on Earth.

Now contrast that with the idiotic PHP decision of setting rules for relational operators leading to circular logic. I know the "this might fool the typical PHP developer" warning went over your head, but ponder on this: on my original PHP code snippet, where's the "loss of precision"?

Where's the casting?

Hell, where do you apply your "object has precedence" mantra on it?

I really can't believe that someone could not only defend this madness so vehemently, but also without really understanding what he/she is talking about. Try a new language, son. It will open your horizons.

PS: I'm a he, not a she.

Comment Re:PHP? (Score 1) 213

Just like PHP!

...sigh...

Just like PHP, where comparison operators are transitive except in cases where precision is lost in type-casting of operands.

Yeah. I'm dying to know what the "loss of precision" is when comparing a float to an array to an object.

No, you know what? I don't. Go have fun with your toy websites.

Comment Re:PHP? (Score 1) 213

Dude, you are the one who's flat out wrong. Not only C has transitive relationship operators, but the language specification actually states that value comparison operators must be transitive except in cases where precision is lost in type-casting of operands.

So, for example, this might fool the typical PHP developer...

int main(void) {
unsigned long a = 98765UL;
int b = -12345;
short c = 1;

if (a < b) printf("a < b!\n");
if (b < c) printf("b < c!\n");
if (c < a) printf("c < a!\n");
}

...while you're simply rounding off (modifying!) operands in the process. This can be easily show by controlling how casting is performed:

int main(void) {
unsigned long a = 98765UL;
int b = -12345;
short c = 1;

if (a < (long)b) printf("a < b!\n");
if (b < (int)c) printf("b < c!\n");
if (c < (short)a) printf("c < a!\n");
}

Compare this to the brainfuck that is PHP, where comparison rules are well stablished but still manage to produce this crap. I can't believe i'm actually discussing this.

Comment Re:PHP? (Score 1) 213

No, it should not be complicated. It does not make sense - PHP is the only, and i mean only language i found with comparison rules that are non-transitive. And even worse, circular.

Comment Re:PHP? (Score 1) 213

Because it's a language that others are likely to already understand. PHP is also written in C, which likely influenced the language.

So are Python, Perl, Ruby and Java, and you won't see anyone comparing them to C. That's a poor argument.

Comment Re:PHP? (Score 1) 213

Oh, and by the way. Why do people insists on comparing PHP to C? Isn't PHP supposed to be a high-level, website oriented scripting language?

I ask because i've seen bugs about PHP segfaulting reliably rejected only because "this behavior is consistent with what lower level languages like C do". It's like watching an exploit slowly growing from its infancy.

Comment Re:PHP? (Score 1) 213

I see. You're just confused by dynamic languages. Try the same operations in C, with the relevant casts, and note the results. Hey, look at that! Not quite so "nonsensical" now, is it?

Like I said, give that article a good fact-check. You'll regret ever recommending it.

"Dynamic languages" eh? Show me a "dynamic language" where i can do this (blatantly stolen from this site):

$ cat circular.php
<?php
 
$a = INF;
$b = array();
$c = (object)array();
 
var_dump($a < $b);
var_dump($b < $c);
var_dump($c < $a);
 
$ php circular.php
bool(true)
bool(true)
bool(true)

You're right though. Nonsense confuses me.

Slashdot Top Deals

To the systems programmer, users and applications serve only to provide a test load.

Working...