[#23657] [Bug #1550] String#lstrip! raises RuntimeError on Frozen String Despite Making No Changes — Run Paint Run Run <redmine@...>

Bug #1550: String#lstrip! raises RuntimeError on Frozen String Despite Making No Changes

13 messages 2009/06/01

[#23729] [Bug #1583] Time + String no Longer Raises TypeError? — Run Paint Run Run <redmine@...>

Bug #1583: Time + String no Longer Raises TypeError?

14 messages 2009/06/05

[#23770] [Bug #1595] rake unusable on windows install — Robert Gonzalez <redmine@...>

Bug #1595: rake unusable on windows install

10 messages 2009/06/09

[#23869] [Bug #1640] [PATCH] Documentation for the Rational Class — Run Paint Run Run <redmine@...>

Bug #1640: [PATCH] Documentation for the Rational Class

12 messages 2009/06/16

[#23903] [Bug #1648] Rational#div Raises NoMethodError for Invalid Argument — Run Paint Run Run <redmine@...>

Bug #1648: Rational#div Raises NoMethodError for Invalid Argument

9 messages 2009/06/17

[#23977] [ANN] meeting log of RubyDeveloperKaigi20090622 — "Yugui (Yuki Sonoda)" <yugui@...>

Hi,

41 messages 2009/06/23
[#23979] Re: [ANN] meeting log of RubyDeveloperKaigi20090622 — Run Paint Run Run <runrun@...> 2009/06/23

Thanks for the update. :-)

[#24173] Re: [ANN] meeting log of RubyDeveloperKaigi20090622 — "NARUSE, Yui" <naruse@...> 2009/07/07

Sorry for late response,

[#24174] Re: [ANN] meeting log of RubyDeveloperKaigi20090622 — Luis Lavena <luislavena@...> 2009/07/07

On Tue, Jul 7, 2009 at 12:12 AM, NARUSE, Yui<naruse@airemix.jp> wrote:

[#24242] Re: [ANN] meeting log of RubyDeveloperKaigi20090622 — Charles Oliver Nutter <headius@...> 2009/07/09

On Mon, Jul 6, 2009 at 10:18 PM, Luis Lavena<luislavena@gmail.com> wrote:

[#24010] [Bug #1685] Some windows unicode path issues remain — B Kelly <redmine@...>

Bug #1685: Some windows unicode path issues remain

26 messages 2009/06/24
[#29189] [Bug #1685] Some windows unicode path issues remain — Yuki Sonoda <redmine@...> 2010/04/01

Issue #1685 has been updated by Yuki Sonoda.

[#29200] Re: [Bug #1685] Some windows unicode path issues remain — Bill Kelly <billk@...> 2010/04/01

Yuki Sonoda wrote:

[#29892] Re: [Bug #1685] Some windows unicode path issues remain — Bill Kelly <billk@...> 2010/04/29

Hi,

[#24058] [Bug #1696] http downloads are unuseably slow — Steven Hartland <redmine@...>

Bug #1696: http downloads are unuseably slow

19 messages 2009/06/27

[#24063] [Feature #1697] Object#<=> — Marc-Andre Lafortune <redmine@...>

Feature #1697: Object#<=>

15 messages 2009/06/28

[ruby-core:23906] [Bug #1640] [PATCH] Documentation for the Rational Class

From: tadayoshi funaba <redmine@...>
Date: 2009-06-17 22:43:41 UTC
List: ruby-core #23906
Issue #1640 has been updated by tadayoshi funaba.


>> div and modulo relate to floor, remainder relate to truncate.
>
> Do you suggest a "see also" pointer between these methods, or did you want something else?

i think many programmer don't understand differences between modulo
and remainder.

"If _rat_ and _numeric_ have different signs, returns _mod_-_numeric_..."
it's so difficult for me.

x modulo y = x-y*floor(x/y)
x remainder y = x-y*truncate(x/y)

x = Rational(13); y = Rational(-4)
x-y*(x/y).floor #=> (-3/1)
x-y*(x/y).truncate #=> (1/1)

x.modulo(y) #=> (-3/1)
x.remainder(y) #=> (1/1)

and

x-y*(x/y).div(1)#=> (-3/1) # modulo

>> floor, ceil and truncate can accept an extra argument, not only round.
>
>Yes, I realised that. I didn't document them because I was waiting for an explanation of how that argument worked. Could you explain it to me? :-)

same.
floor (-inf), ceil (+inf), truncate (zero) and round (nearest)

'%f' % Rational('-1.125').floor(2) #=> "-1.130000"
'%f' % Rational('-1.125').ceil(2) #=> "-1.120000"
'%f' % Rational('-1.125').truncate(2) #=> "-1.120000"
'%f' % Rational('-1.125').round(2) #=> "-1.130000"

'%f'% ((Rational('-1.125')*10**2).floor*10**-2) #=> "-1.130000"
'%f'% ((Rational('-1.125')*10**2).ceil*10**-2) #=> "-1.120000"
'%f'% ((Rational('-1.125')*10**2).truncate*10**-2) #=> "-1.120000"
'%f'% ((Rational('-1.125')*10**2).round*10**-2) #=> "-1.130000"

also accept negative number.

'%f' % Rational('12345.6789').round(2) #=> "12345.680000"
'%f' % Rational('12345.6789').round(-2) #=> "12300.000000"

see also Float#round.

12345.6789.round(2) #=> 12345.68
12345.6789.round(-2) #=> 12300

>> to_r also, but never raise exception of parser error.
>
>I don't understand this. Rational() doesn't call #to_r on arguments, and does raise errors for invalid arguments. Could you clarify?

it's ruby's style.

$ ruby -e 'p Integer("x")'
-e:1:in `Integer': invalid value for Integer: "x" (ArgumentError)
	from -e:1

$ ruby -e 'p Integer(nil)'
-e:1:in `Integer': can't convert nil into Integer (TypeError)
	from -e:1:in `<main>'

$ ruby -e 'p Integer(Integer(Integer("0")))'
0

$ ruby -e 'p "x".to_i'
0

Thanks for your re-edit.

----------------------------------------
http://redmine.ruby-lang.org/issues/show/1640

----------------------------------------
http://redmine.ruby-lang.org

In This Thread