[Issue 4726] writeln(0.0 / 0.0) prints -nan
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Aug 26 00:50:54 PDT 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4726
--- Comment #2 from bearophile_hugs at eml.cc 2010-08-26 00:50:46 PDT ---
OK. Thank you for your answer. I will not reopen this bug because it's a minor
thing, but I don't like it because:
>From a purely ideal point of view, a NaN isn't a number, so it can't be
positive or negative, it's "undefined", that is not negative.
In 0.0/0.0 both values are positive, so if you extend the semantics of division
between two positive real numbers, the result can't be negative.
And because no other language I know of (including D printf) seems to print a
"negative nan" in that situation:
-------------------
In D (2.048) if you run this program:
import std.stdio;
void main() {
printf("%f\n", 0.0 / 0.0);
}
It prints "nan".
-------------------
This D1 program (dmd 1.026):
import std.stdio;
void main() {
writefln("%f", 0.0 / 0.0);
}
Prints "nan".
-------------------
In C if you run this program:
#include "stdio.h"
int main() {
printf("%f\n", 0.0 / 0.0);
return 0;
}
It prints "nan".
-------------------
In Scala language, this program:
import java.io.{BufferedReader, InputStreamReader}
object Main {
def main(args: Array[String]) {
System.out.println(0.0 / 0.0);
}
}
Prints "NaN".
-------------------
In Haskell (that is a quite mathematical-oriented language), this program:
main = do
putStr (show (0.0 / 0.0))
Prints "NaN".
-------------------
In F#, this program:
open System
do
System.Console.Write(0.0 / 0.0)
Prints "NaN".
-------------------
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list