티스토리 뷰
팀의 승률을 구하는 코드를 작성한 후 출력한 결과
아래와 같이 소수점이 출력되었다.
@Override
public double calculateWinningRate(String teamId) {
String SQL = "SELECT COUNT(*) FROM t_score WHERE teamId=? AND ts_result='Win'";
int totalWins = template.queryForObject(SQL, Integer.class, teamId);
String totalGamesSQL = "SELECT COUNT(*) FROM t_score WHERE teamId=?";
int totalGames = template.queryForObject(totalGamesSQL, Integer.class, teamId);
if(totalGames>0) {
return ((double) totalWins/totalGames)*100;
}
else {
return 0.0;
}
}
너무 많은 소수점이 출력된다.
그러므로 소수점 세자리수까지 출력되도록 변경해주었다.
소수점을 지정하는 방법은 두가지가 있다.
format와 round함수 사용하는 방법이 있는데
1. format을 사용하여 String으로 형변환하여 사용하기
@Override
public String calculateWinningRate(String teamId) {
String SQL = "SELECT COUNT(*) FROM t_score WHERE teamId=? AND ts_result='Win'";
int totalWins = template.queryForObject(SQL, Integer.class, teamId);
String totalGamesSQL = "SELECT COUNT(*) FROM t_score WHERE teamId=?";
int totalGames = template.queryForObject(totalGamesSQL, Integer.class, teamId);
if (totalGames > 0) {
return String.format("%.3f", ((double) totalWins / totalGames) * 100);
} else {
return "0.000"; // or any default value
}
}
2. Math.round 사용하여 형변환 없이 double로 유지한채 사용하기
@Override
public double calculateWinningRate(String teamId) {
String SQL = "SELECT COUNT(*) FROM t_score WHERE teamId=? AND ts_result='Win'";
int totalWins = template.queryForObject(SQL, Integer.class, teamId);
String totalGamesSQL = "SELECT COUNT(*) FROM t_score WHERE teamId=?";
int totalGames = template.queryForObject(totalGamesSQL, Integer.class, teamId);
if (totalGames > 0) {
double winningRate = ((double) totalWins / totalGames) * 100;
return Math.round(winningRate * 1000.0) / 1000.0; // 소수점 3자리까지 표현
} else {
return 0.0;
}
}
나는 여기에서 형변환을 하지않는 두번째 방법을 사용하였다.
그럼 아래와 같이 출력 결과가 나온다.
'코딩 > 오류 노트' 카테고리의 다른 글
[spring] 메서드 (모델 객체 속성 추가 / 여러 메서드를 추가해 모델 유효범위 늘리기) (0) | 2024.02.20 |
---|---|
[spring] 출력 값 오류 (model.addAttribute / DB return) (0) | 2024.02.20 |
[인코딩 오류] (0) | 2024.02.15 |
[spring] 애너테이션 미작성 오류 (0) | 2024.01.31 |
[spring] ArrayList에 입력 값이 없을 경우 (0) | 2024.01.31 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday