Le 08/11/2016 à 11:05, Vincent Delecroix a écrit : > On 8 November 2016 at 10:17, Thierry Dumont <tdum...@math.univ-lyon1.fr> > wrote: >> Le 08/11/2016 à 08:43, Vincent Delecroix a écrit : >>> Concerning representation of algebraic numbers, it is printed as an >>> exact rational if and only if it is stored as an exact rational. It >>> will be if the method exactify has been called on the underlying >>> representation of the number. Here is a simple example that shows the >>> difference >>> >> >> Ha, yes... >> >> But I am not sure to understand. >> >> sage: y=QQbar(cos(pi/18)) >> sage: y.radical_expression() >> 1/4*(4*(1/128*I*sqrt(3) + 1/128)^(1/3) + 1)/(1/128*I*sqrt(3) + 1/128)^(1/6) >> >> ok! good! >> >> sage: y >> 0.9848077530122081? + 0.?e-18*I >> >> ok. >> sage: y.imag() >> 0.?e-18 >> sage: y.imag() == 0 >> True >> I accept this as 0 is "in" 0.?e-18 >> >> Now: >> >> sage: y.exactify() >> sage: y >> 0.9848077530122081? + 0.?e-18*I >> >> raaahhh ! grrr ! > > This is *not* a rational!!
sure... >We might want to special case the > representation of real numbers of QQbar. I opened > https://trac.sagemath.org/ticket/21838 for that purpose. > > Vincent > In my code, all values are real in QQbar. So at least temporary, I wrote realify=lambda x: x.real() which is not as beautiful as could be dreamed, but it works. Thanks! t.d. -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at https://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
<<attachment: tdumont.vcf>>