다음은 float 값의 정밀도와 관련이 있다고 생각합니다. 그러나 어떻게 정확하게 왜 따르는 동작이 관찰되는지 확실하지 않습니다. 나는 자바 코드의 조각을 다음 있습니다 :float 및 Java에서 int 값 빼기
class float_int
{
void float_to_int(float val)
{
int int_val = (int)val;
float remain_val = val - (float)int_val;
System.out.println("val - " + val);
System.out.println("int_val - " + (float)int_val);
System.out.println("remain_val - " + remain_val);
}
public static void main(String args[])
{
float_int obj = new float_int();
obj.float_to_int((float)12.345);
}
}
내가 얻을 다음과 같은 출력 :
val - 12.345
int_val - 12.0
remain_val - 0.34500027
지금 내가 remain_val의 말에 "27"추가납니다 이유를 모르겠어요 .
내가 사용하는 것이 좋습니다를'더블 '당신이 아주 좋은 * 이유가 없다면. 당신은 여전히이 이슈들을 볼 수있을 것이지만 그것들은 약 10 억 배 더 작을 것입니다. –