[#47386] [Backport92 - Backport #6958][Open] buggy BigDecimal#integer? — "adrianomitre (Adriano Mitre)" <adriano.mitre@...>
7 messages
2012/09/01
[#47409] [ruby-trunk - Feature #6973][Open] Add an #integral? method to Numeric to test for whole-number values — "regularfry (Alex Young)" <alex@...>
12 messages
2012/09/03
[#47444] [ruby-trunk - Bug #6986][Open] Inconsistent result of BigDecimal#power — "phasis68 (Heesob Park)" <phasis@...>
7 messages
2012/09/06
[#47453] [ruby-trunk - Bug #6994][Open] yield plus splat unwraps too much — "headius (Charles Nutter)" <headius@...>
8 messages
2012/09/07
[#47460] [ruby-trunk - Bug #6997][Open] Improve documentation for OptionParser — "eike.rb (Eike Dierks)" <eike@...>
7 messages
2012/09/08
[#47465] [ruby-trunk - Feature #7003][Assigned] Please decide. MVM to be with 2.0? — "shyouhei (Shyouhei Urabe)" <shyouhei@...>
3 messages
2012/09/10
[#47523] [ruby-trunk - Feature #7022][Open] add event hook for garbage collection — "rogerdpack (Roger Pack)" <rogerpack2005@...>
7 messages
2012/09/14
[#47531] [ruby-trunk - Feature #7022] add event hook for garbage collection
— "rogerdpack (Roger Pack)" <rogerpack2005@...>
2012/09/14
[#47540] autoload & require — Xavier Noria <fxn@...>
Hi,
4 messages
2012/09/15
[#47562] feature request: thread pool class — Roger Pack <rogerdpack2@...>
It has always seemed a bit odd to me that Ruby's sdlib doesn't have some kind of
4 messages
2012/09/17
[#47638] [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use — "headius (Charles Nutter)" <headius@...>
11 messages
2012/09/21
[#47653] [ruby-trunk - Bug #7050][Open] encoding of String#unpack for 'H', 'h', 'B' and 'b' — "Eregon (Benoit Daloze)" <redmine@...>
6 messages
2012/09/22
[#47655] [ruby-trunk - Feature #7051][Open] Extend caller_locations API to include klass and bindings. Allow caller_locations as a method hanging off Thread. — "sam.saffron (Sam Saffron)" <sam.saffron@...>
13 messages
2012/09/23
[#47709] [ruby-trunk - Bug #7076][Open] TestUnicodeEscape#test_basic failure on Windows — "h.shirosaki (Hiroshi Shirosaki)" <h.shirosaki@...>
4 messages
2012/09/27
[#47719] [ruby-trunk - Bug #7082][Open] Process.kill 0 in windows can return spurious success — "rogerdpack (Roger Pack)" <rogerpack2005@...>
6 messages
2012/09/28
[#47730] [ruby-trunk - Bug #7085][Open] Subversion → GitHub gateway stops. — "shyouhei (Shyouhei Urabe)" <shyouhei@...>
27 messages
2012/09/29
[#47731] [ruby-trunk - Bug #7085] Subversion → GitHub gateway stops.
— "shyouhei (Shyouhei Urabe)" <shyouhei@...>
2012/09/29
[#47743] Re: [ruby-trunk - Bug #7085] Subversion → GitHub gateway stops.
— Evan Phoenix <evan@...>
2012/09/29
Hello shyouhei, =20
[#47746] Re: [ruby-trunk - Bug #7085] Subversion → GitHub gateway stops.
— Urabe Shyouhei <shyouhei@...>
2012/09/30
On 09/30/2012 02:33 AM, Evan Phoenix wrote:
[#48020] [ruby-trunk - Bug #7085] Subversion → GitHub gateway stops.
— "shyouhei (Shyouhei Urabe)" <shyouhei@...>
2012/10/16
[#48953] [ruby-trunk - Bug #7085] Subversion → GitHub gateway stops.
— "shyouhei (Shyouhei Urabe)" <shyouhei@...>
2012/11/05
[#49123] Re: [ruby-trunk - Bug #7085] Subversion → GitHub gateway stops.
— Evan Phoenix <evan@...>
2012/11/08
So sorry for the continual delay. I'm setting this up right now but it ap=
[#47735] [ruby-trunk - Bug #7087][Open] ::ConditionVariable#wait does not work with Monitor because Monitor#sleep does not exist — "rklemme (Robert Klemme)" <shortcutter@...>
10 messages
2012/09/29
[ruby-core:47425] Re: [ruby-trunk - Feature #6973] Add an #integral? method to Numeric to test for whole-number values
From:
Alex Young <alex@...>
Date:
2012-09-04 16:41:18 UTC
List:
ruby-core #47425
On 04/09/12 11:01, jballanc (Joshua Ballanco) wrote: > > Issue #6973 has been updated by jballanc (Joshua Ballanco). > > > Just a suggestion, but I don't think "integral" really explains what > you want this method to do, and it is confusingly close to > "integer?". Why not Numeric#whole_number? I could live with that. I think the problem is actually that #integer? is unfortunately-named, but let's put that to one side :-) > Personally, I'm not entirely convinced this method is a good idea. > With Floats, you can't really guarantee that "4.0" is the same as > "4". It could actually be "4.00000000000000001" but the precision is > lost. This is actually not true. If you have a float with a value of 4.0, then that genuinely *is* the same as 4. The whole number value "4" has a precise representation in floating point format, and if you have that value then it makes no sense to say that what you have might not be equal to 4. 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. > If you want to know if `my_float.floor == my_float`, that check > isn't so hard to do and also has a very specific meaning. I could > *maybe* see including this sort of method in BigDecimal or Rational > (though in that case it would essentially be the same as > `my_rational.denomenator == 1`). What sort of use case were you > picturing? This came up in #6958, specifically because BigDecimal's #integer? as inherited from Numeric is confusing. > > Finally, just a note on the patch: there are easier (i.e. without > allocation) ways to determine if a float, bigdecimal, or rational is > a whole number. Why not give all of the subclasses in the stdlib > specific implementations in addition to the generic implementation in > Numeric? Sure. Interface before implementation. -- Alex > ---------------------------------------- Feature #6973: Add > an #integral? method to Numeric to test for whole-number values > https://bugs.ruby-lang.org/issues/6973#change-29171 > > Author: regularfry (Alex Young) Status: Open Priority: Normal > Assignee: Category: Target version: 2.0.0 > > > 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. > >