diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/roulette/v2/RouletteService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/roulette/v2/RouletteService.kt index b8c39e9..84ad0bc 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/roulette/v2/RouletteService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/roulette/v2/RouletteService.kt @@ -23,6 +23,7 @@ import kr.co.vividnext.sodalive.member.MemberRole import org.springframework.data.repository.findByIdOrNull import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional +import java.math.BigDecimal import java.util.concurrent.locks.ReentrantReadWriteLock import kotlin.concurrent.write import kotlin.random.Random @@ -236,8 +237,8 @@ class RouletteService( throw SodaException("룰렛 옵션은 최소 2개, 최대 10개까지 설정할 수 있습니다.") } - val totalPercentage = items.map { it.percentage }.sum() - if (totalPercentage != 100f) { + val totalPercentage = items.map { BigDecimal(it.percentage.toDouble()) }.reduce(BigDecimal::plus) + if (totalPercentage != BigDecimal(100.0)) { throw SodaException("확률이 100%가 아닙니다") } }