Detect division by zero: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Changed to Wren S/H) |
(Added MiniScript) |
||
Line 1,481: | Line 1,481: | ||
<syntaxhighlight lang="min">(/ inf ==) :div-zero?</syntaxhighlight> |
<syntaxhighlight lang="min">(/ inf ==) :div-zero?</syntaxhighlight> |
||
Integer divison (that is, <code>div</code> and not <code>/</code>) by zero will cause min to exit with an uncatchable arithmetic error. |
Integer divison (that is, <code>div</code> and not <code>/</code>) by zero will cause min to exit with an uncatchable arithmetic error. |
||
=={{header|MiniScript}}== |
|||
<syntaxhighlight lang="miniscript">number.isInfinite = function |
|||
return abs(self) == 1/0 |
|||
end function |
|||
number.isNaN = function(n) |
|||
return self != self |
|||
end function |
|||
number.toBoolStr = function |
|||
if self == 0 then return "false" |
|||
return "true" |
|||
end function |
|||
checkDivByZero = function(a, b) |
|||
c = a / b |
|||
if c.isInfinite or c.isNaN then return true |
|||
return false |
|||
end function |
|||
print "Division by zero?" |
|||
print " 0 / 0 -> " + checkDivByZero( 0, 0).toBoolStr |
|||
print " 1 / 0 -> " + checkDivByZero( 1, 0).toBoolStr |
|||
print " 1 / 1 -> " + checkDivByZero( 1, 1).toBoolStr |
|||
print " -5 / 0 -> " + checkDivByZero(-5, 0).toBoolStr |
|||
print " -5 / 2 -> " + checkDivByZero(-5, 2).toBoolStr</syntaxhighlight> |
|||
{{out}} |
|||
<pre>Division by zero? |
|||
0 / 0 -> true |
|||
1 / 0 -> true |
|||
1 / 1 -> false |
|||
-5 / 0 -> true |
|||
-5 / 2 -> false |
|||
</pre> |
|||
=={{header|mIRC Scripting Language}}== |
=={{header|mIRC Scripting Language}}== |