2013-09-03 2 views
0

저는 현재 공식 웹 사이트의 예제를 따르는 간단한 코드로 angelscript를 사용하려고합니다. 난 내 스크립트에 다음과 같은 두 변수를 초기화 할 때Angelscript 잘못된 유형 변환

는하지만 :

double x=1/2; 

변수 x의 값으로 초기화 할 것으로 보인다 내가 이중 을 쓸 때 0

그것은 단지 작동 x = 1/2.0; 또는 double x = 1.0/2;

스크립트에서 더 이상 코드를 추가하지 않고 double x = 1/2를 입력하면 angelscript가 배정도로 작동하도록 만드는 방법이 있습니까?

12는 정수이기 때문에

답변

0

하다고, 감사합니다, 그리고 : x 실제로 이중 경우

int x = 1/2; 

은 0 있을까, 당신이 암시 적 캐스트 변환을를 얻을 :

double x = (double)(1/2); 

즉, 1/2 = 00.0. 다음과 같은 알림이 없습니다.

double x = (double)1/2; 

원하는대로 할 수 있습니다.

소수 자릿수는 double이며 int를 double로 나누면 double이됩니다. 또한 각 번호 캐스팅으로이 작업을 수행 할 수 있습니다 12 실제로 변수를 int로하는 경우 편리

double x = (double)1/(double)2; 

-이 방법을 주조로는, 그 값을 분할하기 전에 이중으로 변환됩니다, 그래서 제품 배가 될거야.

0

intint으로 나눌 경우 결과는 int입니다. 몫이 결과이고, 나머지는 버려집니다. 여기에서 1/2은 0의 나머지와 1의 나머지를 산출합니다. double이 필요하면 1.0/2을 시도하십시오.

아니요, 결과를 캐스팅하지 않고 int 두 개를 나눠서 double을 얻는 방법은 없습니다.

0

일부 매크로 발뺌을 사용 :

#include <stdio.h> 

#define DIV * 1.0/

int main(void) 
{ 
    double x = 1 DIV 2; 

    printf("%f\n", x); 
    return 0; 
} 

DIV도 정의 할 수 있습니다 :

#define DIV/(double)