On Jan 24, 2007, at 1:46 PM, John Kopanas wrote:
> On 1/24/07, Rob Biedenharn <Rob / agileconsultingllc.com> wrote:
>>
>> On Jan 24, 2007, at 10:52 AM, ara.t.howard / noaa.gov wrote:
>>
>> > On Thu, 25 Jan 2007, John Kopanas wrote:
>> >
>> >> I have the following:
>> >>
>> >> a = (y != 0) ? (x/y) : 0
>> >>
>> >> There must be a sexier way of doing this!  Any suggestions?
>> >>
>> >> On a side note... how do we do exception handling on the same line
>> >> as statement?
>> >>
>> >> a = x/y rescue 0
>> >>
>> >> That does not work but does it make sense?  Is it because  
>> dividing by
>> >> zero does not throw an exception?
>> >>
>> >> Thanks for your help! :-)
>> >>
>> >
>> > works for me?
>> >
>> >   harp:~ > ruby -e'  a = 42/0 rescue 42;  p a  '
>> >   42
>> >
>> > i think you're doing the right thing with
>> >
>> >> a = x/y rescue 0
>> >
>> > how doesn't it work?
>> >
>> > regards.
>> >
>> > -a
>> > --
>> > we can deny everything, except that we have the possibility of
>> > being better.
>> > simply reflect on that.
>> > - the dalai lama
>>
>> If you're not limited to Integers:
>>
>>  >> 1/0
>> ZeroDivisionError: divided by 0
>>          from (irb):1:in `/'
>>          from (irb):1
>>  >> 1.0/0
>> => Infinity
>>  >> 1/0.0
>> => Infinity
>>  >> 0.0/0.0
>> => NaN
>>  >>
>>
>> If either x or y are Float, then dividing by zero isn't an exception.
>>
>> You could force an exception if you want to get back to an Integer:
>>
>>  >> (1.0/0).to_i
>> FloatDomainError: Infinity
>>          from (irb):7:in `to_i'
>>          from (irb):7
>>  >> (0.0/0.0).to_i
>> FloatDomainError: NaN
>>          from (irb):8:in `to_i'
>>          from (irb):8
>>
>> -Rob
>>
>> Rob Biedenharn          http://agileconsultingllc.com
>> Rob / AgileConsultingLLC.com
>>
>
> I need to keep it as a float... that is my problemo :-(.
> -- 
> John Kopanas
> john / kopanas.com
>
> http://www.kopanas.com
> http://www.cusec.net
> http://www.soen.info

Perhaps...

a = x/y

a = 0.0 unless a.finite?

-Rob

Rob Biedenharn		http://agileconsultingllc.com
Rob / AgileConsultingLLC.com