If b is rational then a^b is irrational in general, even for a integer, so 
this output is quite expected, as well as

julia> (10//1)^(2//1)

100.0




Le lundi 9 juin 2014 00:54:37 UTC+2, Miguel Bazdresch a écrit :
>
> I just tried this (on 0.2.1):
>
> julia> (10//1)^(-2//1)
> 0.01
>
> Is this expected?
>
> -- mb
>
>
>
> On Sun, Jun 8, 2014 at 6:36 PM, 'Stéphane Laurent' via julia-users <
> julia...@googlegroups.com <javascript:>> wrote:
>
>> julia> (10//1)^(-2)
>>
>> 1//100
>>
>>
>> Would it be problematic to return a rational 
>> for  (a::Integer)^(b::Integer) ?
>>
>>
>>
>> Le dimanche 8 juin 2014 21:53:45 UTC+2, Stefan Karpinski a écrit :
>>>
>>> There are three obvious options for (a::Integer)^(b::Integer):
>>>
>>>    1. Always return an integer ⟹ fails for negative b.
>>>    2. Always return a float ⟹ a^2 is not the same as a*a.
>>>    3. Return float for negative b, integer otherwise ⟹ not type-stable. 
>>>
>>> As you can see, all of these choices are problematic. The first one, 
>>> which is what we currently do, seems to be the least problematic. One 
>>> somewhat crazier option that has been proposed is making ^- as in a^-b 
>>> parse as a different operator and have a^b return an integer for integer 
>>> arguments but a^-b return a float for integer arguments. This would have 
>>> the unfortunate effect of making a^-b different from a^(-b).
>>>
>>>
>>> On Sat, Jun 7, 2014 at 12:41 PM, Daniel Jones <daniel...@gmail.com> 
>>> wrote:
>>>
>>>>  I'd definitely be in favor of '^' converting to float, like '/', 
>>>> having fallen for than recently 
>>>> <https://github.com/JuliaLang/Color.jl/commit/c3d05dd2b94f0d38b64ef86022accdfec886a673>
>>>> .
>>>>   
>>>> On Sat, Jun 7, 2014, at 12:53 AM, Ivar Nesje wrote:
>>>> >
>>>> > There has also been discussion on whether ^(a::Integer,b::Integer) 
>>>> should
>>>> > return a Float64 by default, and defer to pow() like /(a::Integer,
>>>> > b::Integer) defers to div(). The problem is that many people like the
>>>> > 10^45 vs 1e45 notation for large integers vs float constants, and we 
>>>> can
>>>> > make it a clean error instead of a silent bug.
>>>>  
>>>>  
>>>
>>>
>

Reply via email to