-- Demonstrates floating point error

with ada.text_io; use ada.text_io;             -- Library for text output
with ada.float_text_io; use ada.float_text_io; -- Library for floating point output
 
procedure one_v1  is 
    point_01: constant float := 0.01;
    sum: float := 0.0;

begin
    for i in 1 .. 100 loop 
        sum := sum + point_01; 
    end loop;

    put("point_01 in scientific notation: ");
    put(point_01,base => 2);      
    new_line;

    put("point_01 in scientific notation: ");
    put(point_01);      
    new_line;

    put("point_01 formatted: ");
    put(point_01, fore => 1, aft => 9, exp => 0);  -- Formatted output is easier to read
    new_line;

    put("point_01 with more decimal places: ");
    put(point_01, fore => 1, aft => 19, exp => 0); -- Let's examine more decimal places
    new_line(2);


    put("sum formatted: ");
    put(sum, fore => 1, aft => 9, exp => 0);      
    new_line;

end one_v1;