On Friday, 9 February 2024 at 16:49:37 UTC, Gary Chike wrote:

The underlying architecture of the language will often times dictate how certain constructs or design decisions are made. For example in Ada, every array has a `Length` attribute and it returns an `integer` type.

And since Ada is a very strongly typed language, there is no choice but to explicitly cast both the numerator and denominator. Ada will not allow you to cast only the numerator and allow the compiler to implicitly cast the denominator as is the case in most C-based languages. This will not compile:
`Avg := Float(Sum) / Len;`

```
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Float_Text_IO; use Ada.Float_Text_IO;

procedure Main is
   type Int_Array is array (Positive range <>) of Integer;

   A   : Int_Array := (-5000, 0);
   Len : Integer := A'Length;
   Sum : Integer := A(1) + A(2);
   Avg : Float;
begin
   Avg := Float(Sum) / Float(Len);
   Put(Avg, 1, 2, 0);
   New_Line;
end Main;
```
Output: -2500.00




Reply via email to