March 2014 update
This commit is contained in:
parent
09687c4926
commit
a25938f123
1846 changed files with 21876 additions and 5203 deletions
|
|
@ -0,0 +1,4 @@
|
|||
DIVIDE foo BY bar GIVING foobar
|
||||
ON SIZE ERROR
|
||||
DISPLAY "Division by zero detected!"
|
||||
END-DIVIDE
|
||||
|
|
@ -28,14 +28,13 @@ if (isIntegral!T || isFloatingPoint!T) {
|
|||
}
|
||||
}
|
||||
|
||||
return format("%5s %s", format("%1.1g", cast(real)result), msg);
|
||||
return format("%5s %s", format("%1.1g", real(result)), msg);
|
||||
}
|
||||
|
||||
void main() {
|
||||
writeln("Division with check:");
|
||||
writefln("int 1/ 0: %s", divCheck(1, 0));
|
||||
writefln("ubyte 1/ 0: %s",
|
||||
divCheck(cast(ubyte)1, cast(ubyte)0));
|
||||
writefln("ubyte 1/ 0: %s", divCheck(ubyte(1), ubyte(0)));
|
||||
writefln("real 1/ 0: %s", divCheck(1.0L, 0.0L));
|
||||
writefln("real -1/ 0: %s", divCheck(-1.0L, 0.0L));
|
||||
writefln("real 0/ 0: %s", divCheck(0.0L, 0.0L));
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
1/0; # Here is the default behavior.
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
NumericEventHandler( ':-division_by_zero'
|
||||
= proc() infinity; end proc ):
|
||||
|
||||
1/0;
|
||||
|
||||
NumericStatus(':-division_by_zero'); # We may check the status flag
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
NumericEventHandler( ':-division_by_zero'
|
||||
= proc()
|
||||
WARNING("division by zero");
|
||||
NumericStatus(':-division_by_zero'=false):
|
||||
infinity;
|
||||
end proc ):
|
||||
|
||||
1/0;
|
||||
|
||||
NumericStatus(':-division_by_zero');
|
||||
Loading…
Add table
Add a link
Reference in a new issue