잡담/궁금증 해결

지수 표현 제거(JAVA)

lms0806 2024. 9. 29. 22:51
728x90
반응형

java에서 float나 double로 소수점이 긴~ 숫자를 표현하고자 하면 8.0E-9 와 같이 표현이 됩니다.

이런 경우, 프론트에서 해당 값을 가져와 표현해줄 때, 지수 표현을 제거해야 하는 경우가 발생할 수 있습니다.

실수값을 지수표현을 제거하여 표현하는 방법이 뭐가 있을까 하면서 시도해본 내용에 대해 공유드리고자 합니다.

 

float로 표현

System.out.print((float)(0.000000008));

8.0E-9

 

double로 표현

System.out.print((double)(0.000000008));

8.0E-9

 

bigdecimal로 표현

System.out.print(BigDecimal.valueOf(0.000000008));

8.0E-9

 

 

bigdecimal.toString()로 표현

System.out.print(BigDecimal.valueOf(0.000000008).toString());

8.0E-9

 

bigdecimal.toPlainString()로 표현

System.out.print(BigDecimal.valueOf(0.000000008).toPlainString());

0.0000000080

 

BigDecimal의 toString()은 값을 있는 그대로 표현하고, toPlainString()은 지수표현을 제거해서 표현해준다.

 

https://github.com/openjdk/jdk/blob/73ebb848fdb66861e912ea747c039ddd1f7a5f48/src/java.base/share/classes/java/math/BigDecimal.java#L3493

 

jdk/src/java.base/share/classes/java/math/BigDecimal.java at 73ebb848fdb66861e912ea747c039ddd1f7a5f48 · openjdk/jdk

JDK main-line development https://openjdk.org/projects/jdk - openjdk/jdk

github.com

 

728x90
반응형