2016-07-30 4 views
1

integer를 float로 변환 할 수있는 구현 된 함수가 있습니까? Ada에서 정수를 실수로 변환하거나 그 반대로 변환하는 방법은 무엇입니까?

나는 정수 떠 변환 짧은 함수를 작성하는 관리 :

function Transform(First: Integer) return Float is 
    A: Integer := First; 
    B: Float := 0.0; 
begin 
    For_Loop: 
    for I in Integer range 1 .. A loop 
     B := B + 1.0; 
    end loop For_Loop; 
    return B; 
end Transform; 

을하지만 Float에서 Integer로 이동하는 방법을 모르겠어요.

+3

을 할 수 있습니다. 'Integer' 범위와'Float' 정밀도는 표준 최소값에 따라 구현에 따라 정의되지만, 많은 플랫폼 (예 : x86)에서 'Integer'는 32 비트이고 Float은 23 점이 더하기 숨겨진 비트 유효성을 갖는 IEEE 단일입니다. 이 경우 알고리즘은 2 \ * \ * 24에서 2 \ * \ * 24까지의 모든 정수 값을 '포화'합니다. –

답변

7

에이다이 심하게 잘못 될 수있는 큰 값을 끔찍하게 느린되는 것을 제외하고 explicit type conversions

with Ada.Text_IO; use Ada.Text_IO; 
procedure Convert is 
    A: Integer:= 4; 
    B: Float; 
    C: Float := 6.8; 
    D: Integer; 
begin 
    B := Float(A); 
    Put_Line(Float'Image(B)); 

    D:= Integer(C); 
    Put_Line(Integer'Image(D)); 
end Convert; 
+3

[* 4.6 유형 변환 *] (http://www.ada-auth.org/standards/12rm/html/RM-4-6.html#I2915)도 참조하십시오. – trashgod

관련 문제