2017-12-21 20 views
-1

어떤 이유로 소수점에 대한 부정확성에도 불구하고 프로그램에서 부동 소수점이 절대적으로 필요하다고 가정하면 2로 반올림하는 데 사용할 수있는 방법이 있습니까? 십진 자리를 double로 변환하지 않고?자바에서 소수 2 자리로 반올림하는 법

+0

Math.round()에 문제가 있습니까? 그것을 표시 할 필요가 있다면 형식을 사용할 수 있습니다. – clinomaniac

+0

플로트 데이터를 반올림하지 마십시오. 문자열로 서식을 지정할 때 자리 수를 제한하십시오. – VGR

+0

복식에만 사용되는 것이 아닌가요? 나는 float을 double 형으로 변환 할 수 있다는 것을 알고 있지만, 프로그램은 대부분 float으로 구성되어 있습니다. (필자는 교과서를 따르고 있으며 필자는 현재 수준에서 반올림이 필요하지 않기 때문에 float를 사용하기로 결정했습니다.) (자궁 경부 용). – SilentEevee

답변

0

이 시도 :

public static float roundFloat(float number, int scale) 
{ 
    int pow = 10; 

    for (int i = 1; i < scale; ++i) 
     pow *= 10; 

    float tmp = number * pow; 

    return ((float) ((int) ((tmp - (int) tmp) >= 0.5f ? tmp + 1 : tmp)))/pow; 
} 

솔리드 빠르게.