From: "alexeymuranov (Alexey Muranov)" Date: 2012-10-30T07:12:47+09:00 Subject: [ruby-core:48550] [ruby-trunk - Feature #6973] Add an #integral? method to Numeric to test for whole-number values Issue #6973 has been updated by alexeymuranov (Alexey Muranov). > >> Floats are precise, just like Integers are. *Operations* on floats are > >> not accurate, and that's where the confusion comes from. That's > >> inherent to the representation and something you've got to deal with > >> anyway, so I certainly don't see this test as making that problem worse. > > > > Your points is valid as long as we can distinguish a Float that includes > > error from a Float that includes no error, such as, just created by a > > Float literal, or by only accurate operations (no overflow, no indivisible > > division, ...). > > But in fact, we cannot distinguish them. We conservatively have to think > > that any Float object includes an error, I think. > > So if I knowingly and correctly construct a calculation which cannot > contain such an error, Ruby should tell me that it's wrong? > I guess the question is: what would be a point in calling this method on a Float? A Float value is rarely exact in the sense that it rarely coincides with the real-world value which it models. ---------------------------------------- Feature #6973: Add an #integral? method to Numeric to test for whole-number values https://bugs.ruby-lang.org/issues/6973#change-31933 Author: regularfry (Alex Young) Status: Assigned Priority: Normal Assignee: mrkn (Kenta Murata) Category: core Target version: next minor Numeric#integer? checks whether an instance is an Integer. It is often useful to check whether the value of a non-Integer variable is actually a whole number, and the #integer? method doesn't help here. This patch adds Numeric#integral?, which performs this check. -- http://bugs.ruby-lang.org/