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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,e749bdf6fe4253aa X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2000-11-14 23:24:14 PST Path: supernews.google.com!sn-xit-02!supernews.com!isdnet!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newshub2.home.com!news.home.com!news1.frmt1.sfba.home.com.POSTED!not-for-mail From: tmoran@acm.org Newsgroups: comp.lang.ada Subject: Re: Why no new posts ? References: <002a01c04eca$dbaecc00$b0375140@Fudge> X-Newsreader: Tom's custom newsreader Message-ID: Date: Wed, 15 Nov 2000 07:24:12 GMT NNTP-Posting-Host: 24.20.190.201 X-Complaints-To: abuse@home.net X-Trace: news1.frmt1.sfba.home.com 974273052 24.20.190.201 (Tue, 14 Nov 2000 23:24:12 PST) NNTP-Posting-Date: Tue, 14 Nov 2000 23:24:12 PST Organization: Excite@Home - The Leader in Broadband http://home.com/faster Xref: supernews.google.com comp.lang.ada:2122 Date: 2000-11-15T07:24:12+00:00 List-Id: with Ada.Text_IO, Ada.Float_Text_IO; procedure Test is type Float9 is digits 9; package Float9_IO is new Ada.Text_IO.Float_IO(Float9); Number_String: constant String := "12345678"; Digit_Value: constant array (Character range '0' .. '9') of Float := (0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0); S : String := "123"; -- For example, is there a simple way to convert a string '123' into an --integer - is there a simple command for this in Ada? N : Integer := Integer'Value(S); -- Similarly, is there a simple way to convert Integers into Floats? F : Float := Float(N); -- I would also like to know if there is a standard function for generating --floats. For example, Float(mantissa, exponent) = mantissa * 10 ** exponent, Avogadro: Float := 6.02 * 10.0 ** 23; Number : Float := 0.0; -- implementation defined Float Number9 : Float9 := 0.0; -- "digits 9" float begin Ada.Text_IO.Put_Line("S=" & S); Ada.Text_IO.Put_Line("N=" & Integer'Image(N)); Ada.Text_IO.Put_Line("F=" & Float'Image(F)); Ada.Text_IO.Put_Line("Avogadro=" & Float'Image(Avogadro)); for I in Number_String'range loop Number := Number + Digit_Value(Number_String(I)) * 10.0 ** (Number_String'Last - I); end loop; Ada.Text_IO.Put_Line("Float'digits=" & Integer'image(Float'digits)); Ada.Text_IO.Put_Line("Number=" & Float'Image(Number)); Ada.Text_IO.Put_Line("Number/100=" & Float'Image(Number / 100.0)); Ada.Float_Text_IO.Put(Number / 100.0, Exp => 0); Ada.Text_IO.New_Line; for I in Number_String'range loop Number9 := Number9 + Float9(Digit_Value(Number_String(I)) * 10.0 ** (Number_String'Last - I)); end loop; Ada.Text_IO.Put_Line("Float9'digits=" & Integer'image(Float9'digits)); Ada.Text_IO.Put_Line("Number9=" & Float9'Image(Number9)); Ada.Text_IO.Put_Line("Number9/100=" & Float9'Image(Number9 / 100.0)); Float9_IO.Put(Number9);Ada.Text_IO.New_Line; Float9_IO.Put(Number9 / 100.0, Exp => 0);Ada.Text_IO.New_Line; end Test; -------------- prints, on Win95 using Gnat 3.13p: S=123 N= 123 F= 1.23000E+02 Avogadro= 6.02000E+23 Float'digits= 6 Number= 1.23457E+07 Number/100= 1.23457E+05 123456.78125 Float9'digits= 9 Number9= 1.23456780E+07 Number9/100= 1.23456780E+05 1.23456780E+07 123456.78000000