Test integerness: Difference between revisions
→{{header|Ruby}}: Added testcases conform suggested improvements.
(→{{header|Haskell}}: Added Haskell solution) |
(→{{header|Ruby}}: Added testcases conform suggested improvements.) |
||
Line 1,306:
=={{header|Ruby}}==
Testing for integerness of floats, rationals and complex numbers:
Line 1,314 ⟶ 1,312:
def integer?
self == self.to_i rescue false
end
end
# Demo
ar = [
2+0i, 2 + 0.0i, 5-5i]
ar.each{|num| puts "#{num} integer? #{num.integer?}" }
</lang>
{{out}}
<pre>
25.0001 integer? false
-2.1e+120 integer? true
-0.05 integer? false
NaN integer? false
Infinity integer? false
2/1 integer? true
5/2 integer? false
2+0i integer? true
2+0.
5-5i integer? false
</pre>
Ruby considers 2+0.0i to be inexact and raises an exception when the to_i method attempts to convert it to an integer. 2+0i is exact and converts to integer.
=={{header|Tcl}}==
|