From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: Qun-Ying Newsgroups: comp.lang.ada Subject: Re: getting same output as gfortran, long_float Date: Thu, 30 Apr 2015 15:27:43 -0700 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: QG+sVfyUW3QoXBz9uF2CgQ.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 SeaMonkey/2.33.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:25669 Date: 2015-04-30T15:27:43-07:00 List-Id: Currently, on my x86_64 Linux with GCC 4.9.2, the maximum digits I could define is 18: type My_float is digits 18; Far less then what you would expected. You would need to use some bindings to MPFR/GMP library for more precisions. Jeffrey R. Carter wrote: > On 04/30/2015 02:17 PM, Nasser M. Abbasi wrote: >> >> with ada.text_io; use ada.text_io; >> procedure foo_2 is >> x : Long_Long_Float; >> begin >> x := 12.0 * 0.0001/(1.0 * (1.0 - 0.1)**4 ); >> put_line(Long_Long_Float'image(x)); >> end foo_2; > > What do you get with this: > > With Ada.Text_IO; > procedure Foo_However_Many is > X : constant := 12.0 * 0.0001 / (1.0 * (1.0 - 0.1) ** 4); > begin -- Foo_However_Many > Ada.Text_IO.Put_Line (Item => X'Img); > end Foo_However_Many; > > ? You probably can't get any more significant digits from GNAT than this gives > you. You could also try a type defined as > > type Big is digits System.Max_Digits; >