[{"content":" 미들 계산기 배당률 포맷 십진법 분수 미국식 베팅 1 베팅 1 라인/스프레드 포인트 스프레드 또는 토탈 (예: -3.5) 베팅 1 배당률 베팅 1 배당률 (예: 우세 스프레드) 베팅 1 금액 베팅 금액 베팅 2 베팅 2 라인/스프레드 반대 라인 (예: \u0026#43;6.5) 베팅 2 배당률 베팅 2 배당률 (예: 열세 스프레드) 베팅 2 금액 베팅 금액 결과 최선의 경우 (미들 성공) - 최악의 경우 (보장) - 미들 크기 - 예상 미들 확률 - 베팅 1만 승리 시 수익 - 베팅 2만 승리 시 수익 - 미들은 다른 라인으로 양쪽에 베팅하여 두 베팅 모두 이길 수 있는 창을 만드는 것입니다. 초기화 ","permalink":"https://calculators-odds.com/ko/middle-calculator/","summary":"\u003cstyle\u003e\n    .middle {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .middle__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .middle__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .middle__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .middle__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #2196F3;\n        color: #2196F3;\n    }\n\n    .middle__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n    }\n\n    .middle__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .middle__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 120px;\n    }\n\n    .middle__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .middle__input, .middle__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .middle__input:focus, .middle__select:focus {\n        outline: none;\n        border-color: #2196F3;\n    }\n\n    .middle__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .middle__select {\n        cursor: pointer;\n    }\n\n    .middle__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .middle__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .middle__output {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .middle__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .middle__result-boxes {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n        margin-bottom: 20px;\n    }\n\n    .middle__result-box {\n        border-radius: 8px;\n        padding: 15px;\n        text-align: center;\n    }\n\n    .middle__result-box--middle {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n    }\n\n    .middle__result-box--worst {\n        background: rgba(255, 152, 0, 0.15);\n        border: 2px solid #ff9800;\n    }\n\n    .middle__result-box-label {\n        font-size: 12px;\n        margin-bottom: 6px;\n        color: rgba(232, 232, 232, 0.7);\n    }\n\n    .middle__result-box-value {\n        font-size: 24px;\n        font-weight: bold;\n    }\n\n    .middle__result-box--middle .middle__result-box-value {\n        color: #4CAF50;\n    }\n\n    .middle__result-box--worst .middle__result-box-value {\n        color: #ff9800;\n    }\n\n    .middle__grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .middle__grid-item {\n        background: rgba(255, 255, 255, 0.05);\n        padding: 15px;\n        border-radius: 6px;\n        text-align: center;\n    }\n\n    .middle__grid-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .middle__grid-value {\n        font-size: 18px;\n        font-weight: bold;\n    }\n\n    .middle__grid-value.positive {\n        color: #4CAF50;\n    }\n\n    .middle__grid-value.negative {\n        color: #f44336;\n    }\n\n    .middle__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .middle__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n    }\n\n    .middle__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .middle__row {\n            flex-direction: column;\n        }\n        .middle__result-boxes {\n            grid-template-columns: 1fr;\n        }\n        .middle__grid {\n            grid-template-columns: 1fr;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"middle\"\u003e\n    \u003cdiv class=\"middle__title\"\u003e미들 계산기\u003c/div\u003e\n\n    \u003cdiv class=\"middle__container\"\u003e\n        \n        \u003cdiv class=\"middle__section\"\u003e\n            \u003cdiv class=\"middle__section-title\"\u003e배당률 포맷\u003c/div\u003e\n            \u003cdiv class=\"middle__row\"\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003cselect class=\"middle__select middle__format\"\u003e\n                        \u003coption value=\"Decimal\"\u003e십진법\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n                        \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n                    \u003c/select\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"middle__section\"\u003e\n            \u003cdiv class=\"middle__section-title\"\u003e베팅 1\u003c/div\u003e\n            \u003cdiv class=\"middle__row\"\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003clabel class=\"middle__label\"\u003e베팅 1 라인/스프레드\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"middle__input middle__line1\" placeholder=\"-3.5\" /\u003e\n                    \u003cspan class=\"middle__hint\"\u003e포인트 스프레드 또는 토탈 (예: -3.5)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003clabel class=\"middle__label\"\u003e베팅 1 배당률\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"middle__input middle__odds1\" placeholder=\"1.91\" /\u003e\n                    \u003cspan class=\"middle__hint\"\u003e베팅 1 배당률 (예: 우세 스프레드)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003clabel class=\"middle__label\"\u003e베팅 1 금액\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"middle__input middle__stake1\" placeholder=\"100\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"middle__hint\"\u003e베팅 금액\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"middle__section\"\u003e\n            \u003cdiv class=\"middle__section-title\"\u003e베팅 2\u003c/div\u003e\n            \u003cdiv class=\"middle__row\"\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003clabel class=\"middle__label\"\u003e베팅 2 라인/스프레드\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"middle__input middle__line2\" placeholder=\"+6.5\" /\u003e\n                    \u003cspan class=\"middle__hint\"\u003e반대 라인 (예: \u0026#43;6.5)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003clabel class=\"middle__label\"\u003e베팅 2 배당률\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"middle__input middle__odds2\" placeholder=\"1.91\" /\u003e\n                    \u003cspan class=\"middle__hint\"\u003e베팅 2 배당률 (예: 열세 스프레드)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003clabel class=\"middle__label\"\u003e베팅 2 금액\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"middle__input middle__stake2\" placeholder=\"100\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"middle__hint\"\u003e베팅 금액\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"middle__output\"\u003e\n            \u003cdiv class=\"middle__output-title\"\u003e결과\u003c/div\u003e\n\n            \u003cdiv class=\"middle__result-boxes\"\u003e\n                \u003cdiv class=\"middle__result-box middle__result-box--middle\"\u003e\n                    \u003cdiv class=\"middle__result-box-label\"\u003e최선의 경우 (미들 성공)\u003c/div\u003e\n                    \u003cdiv class=\"middle__result-box-value middle__best-case\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__result-box middle__result-box--worst\"\u003e\n                    \u003cdiv class=\"middle__result-box-label\"\u003e최악의 경우 (보장)\u003c/div\u003e\n                    \u003cdiv class=\"middle__result-box-value middle__worst-case\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"middle__grid\"\u003e\n                \u003cdiv class=\"middle__grid-item\"\u003e\n                    \u003cdiv class=\"middle__grid-label\"\u003e미들 크기\u003c/div\u003e\n                    \u003cdiv class=\"middle__grid-value middle__middle-size\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__grid-item\"\u003e\n                    \u003cdiv class=\"middle__grid-label\"\u003e예상 미들 확률\u003c/div\u003e\n                    \u003cdiv class=\"middle__grid-value middle__middle-prob\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__grid-item\"\u003e\n                    \u003cdiv class=\"middle__grid-label\"\u003e베팅 1만 승리 시 수익\u003c/div\u003e\n                    \u003cdiv class=\"middle__grid-value middle__profit1\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__grid-item\"\u003e\n                    \u003cdiv class=\"middle__grid-label\"\u003e베팅 2만 승리 시 수익\u003c/div\u003e\n                    \u003cdiv class=\"middle__grid-value middle__profit2\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"middle__info\"\u003e\n                미들은 다른 라인으로 양쪽에 베팅하여 두 베팅 모두 이길 수 있는 창을 만드는 것입니다.\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cbutton class=\"middle__reset\" type=\"button\"\u003e초기화\u003c/button\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const formatSelect = container.querySelector('.middle__format');\n    const line1Input = container.querySelector('.middle__line1');\n    const odds1Input = container.querySelector('.middle__odds1');\n    const stake1Input = container.querySelector('.middle__stake1');\n    const line2Input = container.querySelector('.middle__line2');\n    const odds2Input = container.querySelector('.middle__odds2');\n    const stake2Input = container.querySelector('.middle__stake2');\n\n    const bestCaseEl = container.querySelector('.middle__best-case');\n    const worstCaseEl = container.querySelector('.middle__worst-case');\n    const middleSizeEl = container.querySelector('.middle__middle-size');\n    const middleProbEl = container.querySelector('.middle__middle-prob');\n    const profit1El = container.querySelector('.middle__profit1');\n    const profit2El = container.querySelector('.middle__profit2');\n\n    const resetBtn = container.querySelector('.middle__reset');\n\n    function validateFractionalCoefficient(c) { return /^\\d+\\/\\d+$/.test(c); }\n    function validateDecimalCoefficient(c) { return /^\\d+(\\.\\d+)?$/.test(c) \u0026\u0026 parseFloat(c) \u003e 1; }\n    function validateAmericanCoefficient(c) { return /^[-+]?\\d+$/.test(c); }\n\n    function convertFractionToDecimal(f) {\n        var p = f.split('/');\n        if (p.length !== 2) return null;\n        var n = parseFloat(p[0]), d = parseFloat(p[1]);\n        if (isNaN(n) || isNaN(d) || d === 0) return null;\n        return (n / d) + 1;\n    }\n\n    function convertAmericanToDecimal(a) {\n        var v = parseFloat(a);\n        if (isNaN(v)) return null;\n        if (v \u003e 0) return (v / 100) + 1;\n        if (v \u003c 0) return (100 / Math.abs(v)) + 1;\n        return 2;\n    }\n\n    function getDecimal(input) {\n        var fmt = formatSelect.value;\n        var val = input.value.trim();\n        if (fmt === 'Fractional') {\n            if (!validateFractionalCoefficient(val)) return null;\n            return convertFractionToDecimal(val);\n        } else if (fmt === 'Decimal') {\n            if (!validateDecimalCoefficient(val)) return null;\n            return parseFloat(val);\n        } else if (fmt === 'American') {\n            if (!validateAmericanCoefficient(val)) return null;\n            return convertAmericanToDecimal(val);\n        }\n        return null;\n    }\n\n    function calculate() {\n        var dec1 = getDecimal(odds1Input);\n        var dec2 = getDecimal(odds2Input);\n        var stake1 = parseFloat(stake1Input.value);\n        var stake2 = parseFloat(stake2Input.value);\n        var line1 = parseFloat(line1Input.value);\n        var line2 = parseFloat(line2Input.value);\n\n        \n        if (dec1 === null || dec1 \u003c= 1) {\n            if (odds1Input.value.trim()) odds1Input.classList.add('invalid');\n            resetOutput(); return;\n        } else { odds1Input.classList.remove('invalid'); }\n\n        if (dec2 === null || dec2 \u003c= 1) {\n            if (odds2Input.value.trim()) odds2Input.classList.add('invalid');\n            resetOutput(); return;\n        } else { odds2Input.classList.remove('invalid'); }\n\n        if (isNaN(stake1) || stake1 \u003c= 0 || isNaN(stake2) || stake2 \u003c= 0) { resetOutput(); return; }\n        if (isNaN(line1) || isNaN(line2)) { resetOutput(); return; }\n\n        var totalStake = stake1 + stake2;\n\n        \n        var payout1 = stake1 * dec1;\n        var payout2 = stake2 * dec2;\n\n        \n        var profitOnlyBet1 = payout1 - totalStake;\n\n        \n        var profitOnlyBet2 = payout2 - totalStake;\n\n        \n        var profitBothWin = payout1 + payout2 - totalStake;\n\n        \n        \n        \n        var absLine1 = Math.abs(line1);\n        var absLine2 = Math.abs(line2);\n\n        \n        var middleSize;\n        if ((line1 \u003c 0 \u0026\u0026 line2 \u003e 0) || (line1 \u003e 0 \u0026\u0026 line2 \u003c 0)) {\n            \n            middleSize = absLine2 - absLine1;\n        } else {\n            \n            middleSize = Math.abs(line2 - line1);\n        }\n\n        \n        var worstCase = Math.min(profitOnlyBet1, profitOnlyBet2);\n\n        \n        var bestCase = profitBothWin;\n\n        \n        \n        var middleProb = 0;\n        if (middleSize \u003e 0) {\n            middleProb = Math.min(middleSize * 2.75, 95);\n        }\n\n        \n        bestCaseEl.textContent = '$' + bestCase.toFixed(2);\n        worstCaseEl.textContent = '$' + worstCase.toFixed(2);\n\n        middleSizeEl.textContent = middleSize \u003e 0 ? middleSize.toFixed(1) + ' 포인트' : '미들 없음';\n\n        if (middleSize \u003e 0) {\n            middleProbEl.textContent = '~' + middleProb.toFixed(1) + '%';\n        } else {\n            middleProbEl.textContent = '0%';\n        }\n\n        profit1El.textContent = '$' + profitOnlyBet1.toFixed(2);\n        profit1El.className = 'middle__grid-value ' + (profitOnlyBet1 \u003e= 0 ? 'positive' : 'negative');\n\n        profit2El.textContent = '$' + profitOnlyBet2.toFixed(2);\n        profit2El.className = 'middle__grid-value ' + (profitOnlyBet2 \u003e= 0 ? 'positive' : 'negative');\n    }\n\n    function resetOutput() {\n        bestCaseEl.textContent = '-';\n        worstCaseEl.textContent = '-';\n        middleSizeEl.textContent = '-';\n        middleProbEl.textContent = '-';\n        profit1El.textContent = '-';\n        profit1El.className = 'middle__grid-value';\n        profit2El.textContent = '-';\n        profit2El.className = 'middle__grid-value';\n    }\n\n    function resetAll() {\n        line1Input.value = ''; odds1Input.value = ''; stake1Input.value = '';\n        line2Input.value = ''; odds2Input.value = ''; stake2Input.value = '';\n        formatSelect.selectedIndex = 0;\n        odds1Input.classList.remove('invalid');\n        odds2Input.classList.remove('invalid');\n        updatePlaceholders();\n        resetOutput();\n    }\n\n    function updatePlaceholders() {\n        var fmt = formatSelect.value;\n        if (fmt === 'Fractional') {\n            odds1Input.placeholder = '10/11';\n            odds2Input.placeholder = '10/11';\n        } else if (fmt === 'Decimal') {\n            odds1Input.placeholder = '1.91';\n            odds2Input.placeholder = '1.91';\n        } else if (fmt === 'American') {\n            odds1Input.placeholder = '-110';\n            odds2Input.placeholder = '-110';\n        }\n    }\n\n    formatSelect.addEventListener('change', function() { updatePlaceholders(); calculate(); });\n    [line1Input, odds1Input, stake1Input, line2Input, odds2Input, stake2Input].forEach(function(el) {\n        el.addEventListener('input', calculate);\n    });\n    resetBtn.addEventListener('click', resetAll);\n\n    updatePlaceholders();\n})();\n\u003c/script\u003e","title":"미들 계산기 - 중간 베팅"},{"content":" 보너스 베팅 전환 계산기 단계 1: 보너스 베팅 상세 보너스 베팅 금액 프리벳 또는 보너스 금액 보너스 베팅 유형 프리벳 (원금 미반환) 프리벳 (원금 반환) 위험 없는 베팅 SNR = 수익만 반환, SR = 전액 지급, 위험 없음 = 패배 시 환불 단계 2: 배당률 \u0026amp; 거래소 배당률 포맷 십진법 분수 미국식 백 배당률 보너스 베팅을 걸 배당률 레이 배당률 (거래소) 거래소 레이 배당률 (이론값은 비워두세요) 거래소 수수료 (%) Betfair ~5%, Smarkets ~2% 결과 실제 현금 가치 - 전환율: - 레이 베팅액 - 레이 부채 - 백 승리 시 수익 - 레이 승리 시 수익 - 높은 배당률 = 높은 전환율. SNR 프리벳의 경우 70%\u0026#43; 전환을 위해 4.00\u0026#43; 배당률을 사용하세요. 초기화 ","permalink":"https://calculators-odds.com/ko/bonus-bet-calculator/","summary":"\u003cstyle\u003e\n    .bonusbet {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .bonusbet__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .bonusbet__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .bonusbet__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .bonusbet__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #2196F3;\n        color: #2196F3;\n    }\n\n    .bonusbet__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n    }\n\n    .bonusbet__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .bonusbet__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 140px;\n    }\n\n    .bonusbet__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .bonusbet__input, .bonusbet__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .bonusbet__input:focus, .bonusbet__select:focus {\n        outline: none;\n        border-color: #2196F3;\n    }\n\n    .bonusbet__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .bonusbet__select {\n        cursor: pointer;\n    }\n\n    .bonusbet__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .bonusbet__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .bonusbet__output {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .bonusbet__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .bonusbet__result-box {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n        border-radius: 8px;\n        padding: 20px;\n        text-align: center;\n        margin-bottom: 20px;\n    }\n\n    .bonusbet__result-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .bonusbet__result-value {\n        font-size: 32px;\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .bonusbet__result-sub {\n        font-size: 14px;\n        color: rgba(232, 232, 232, 0.6);\n        margin-top: 6px;\n    }\n\n    .bonusbet__grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .bonusbet__grid-item {\n        background: rgba(255, 255, 255, 0.05);\n        padding: 15px;\n        border-radius: 6px;\n        text-align: center;\n    }\n\n    .bonusbet__grid-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .bonusbet__grid-value {\n        font-size: 20px;\n        font-weight: bold;\n    }\n\n    .bonusbet__grid-value.positive {\n        color: #4CAF50;\n    }\n\n    .bonusbet__grid-value.negative {\n        color: #f44336;\n    }\n\n    .bonusbet__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .bonusbet__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n    }\n\n    .bonusbet__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .bonusbet__row {\n            flex-direction: column;\n        }\n        .bonusbet__grid {\n            grid-template-columns: 1fr;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"bonusbet\"\u003e\n    \u003cdiv class=\"bonusbet__title\"\u003e보너스 베팅 전환 계산기\u003c/div\u003e\n\n    \u003cdiv class=\"bonusbet__container\"\u003e\n        \n        \u003cdiv class=\"bonusbet__section\"\u003e\n            \u003cdiv class=\"bonusbet__section-title\"\u003e단계 1: 보너스 베팅 상세\u003c/div\u003e\n            \u003cdiv class=\"bonusbet__row\"\u003e\n                \u003cdiv class=\"bonusbet__input-group\"\u003e\n                    \u003clabel class=\"bonusbet__label\"\u003e보너스 베팅 금액\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"bonusbet__input bonusbet__amount\" placeholder=\"50\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"bonusbet__hint\"\u003e프리벳 또는 보너스 금액\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"bonusbet__input-group\"\u003e\n                    \u003clabel class=\"bonusbet__label\"\u003e보너스 베팅 유형\u003c/label\u003e\n                    \u003cselect class=\"bonusbet__select bonusbet__type\"\u003e\n                        \u003coption value=\"snr\"\u003e프리벳 (원금 미반환)\u003c/option\u003e\n                        \u003coption value=\"sr\"\u003e프리벳 (원금 반환)\u003c/option\u003e\n                        \u003coption value=\"riskfree\"\u003e위험 없는 베팅\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"bonusbet__hint\"\u003eSNR = 수익만 반환, SR = 전액 지급, 위험 없음 = 패배 시 환불\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"bonusbet__section\"\u003e\n            \u003cdiv class=\"bonusbet__section-title\"\u003e단계 2: 배당률 \u0026amp; 거래소\u003c/div\u003e\n            \u003cdiv class=\"bonusbet__row\"\u003e\n                \u003cdiv class=\"bonusbet__input-group\"\u003e\n                    \u003clabel class=\"bonusbet__label\"\u003e배당률 포맷\u003c/label\u003e\n                    \u003cselect class=\"bonusbet__select bonusbet__format\"\u003e\n                        \u003coption value=\"Decimal\"\u003e십진법\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n                        \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n                    \u003c/select\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"bonusbet__input-group\"\u003e\n                    \u003clabel class=\"bonusbet__label\"\u003e백 배당률\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"bonusbet__input bonusbet__back-odds\" placeholder=\"4.00\" /\u003e\n                    \u003cspan class=\"bonusbet__hint\"\u003e보너스 베팅을 걸 배당률\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"bonusbet__row\"\u003e\n                \u003cdiv class=\"bonusbet__input-group\"\u003e\n                    \u003clabel class=\"bonusbet__label\"\u003e레이 배당률 (거래소)\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"bonusbet__input bonusbet__lay-odds\" placeholder=\"4.10\" /\u003e\n                    \u003cspan class=\"bonusbet__hint\"\u003e거래소 레이 배당률 (이론값은 비워두세요)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"bonusbet__input-group\"\u003e\n                    \u003clabel class=\"bonusbet__label\"\u003e거래소 수수료 (%)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"bonusbet__input bonusbet__commission\" placeholder=\"5\" value=\"5\" min=\"0\" max=\"100\" step=\"0.1\" /\u003e\n                    \u003cspan class=\"bonusbet__hint\"\u003eBetfair ~5%, Smarkets ~2%\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"bonusbet__output\"\u003e\n            \u003cdiv class=\"bonusbet__output-title\"\u003e결과\u003c/div\u003e\n\n            \u003cdiv class=\"bonusbet__result-box\"\u003e\n                \u003cdiv class=\"bonusbet__result-label\"\u003e실제 현금 가치\u003c/div\u003e\n                \u003cdiv class=\"bonusbet__result-value bonusbet__real-value\"\u003e-\u003c/div\u003e\n                \u003cdiv class=\"bonusbet__result-sub bonusbet__conversion-rate\"\u003e전환율: -\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"bonusbet__grid\"\u003e\n                \u003cdiv class=\"bonusbet__grid-item\"\u003e\n                    \u003cdiv class=\"bonusbet__grid-label\"\u003e레이 베팅액\u003c/div\u003e\n                    \u003cdiv class=\"bonusbet__grid-value bonusbet__lay-stake-result\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"bonusbet__grid-item\"\u003e\n                    \u003cdiv class=\"bonusbet__grid-label\"\u003e레이 부채\u003c/div\u003e\n                    \u003cdiv class=\"bonusbet__grid-value bonusbet__liability-result\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"bonusbet__grid-item\"\u003e\n                    \u003cdiv class=\"bonusbet__grid-label\"\u003e백 승리 시 수익\u003c/div\u003e\n                    \u003cdiv class=\"bonusbet__grid-value bonusbet__profit-back\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"bonusbet__grid-item\"\u003e\n                    \u003cdiv class=\"bonusbet__grid-label\"\u003e레이 승리 시 수익\u003c/div\u003e\n                    \u003cdiv class=\"bonusbet__grid-value bonusbet__profit-lay\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"bonusbet__info bonusbet__tip\"\u003e\n                높은 배당률 = 높은 전환율. SNR 프리벳의 경우 70%\u0026#43; 전환을 위해 4.00\u0026#43; 배당률을 사용하세요.\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cbutton class=\"bonusbet__reset\" type=\"button\"\u003e초기화\u003c/button\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const amountInput = container.querySelector('.bonusbet__amount');\n    const typeSelect = container.querySelector('.bonusbet__type');\n    const formatSelect = container.querySelector('.bonusbet__format');\n    const backOddsInput = container.querySelector('.bonusbet__back-odds');\n    const layOddsInput = container.querySelector('.bonusbet__lay-odds');\n    const commissionInput = container.querySelector('.bonusbet__commission');\n\n    const realValueEl = container.querySelector('.bonusbet__real-value');\n    const conversionRateEl = container.querySelector('.bonusbet__conversion-rate');\n    const layStakeEl = container.querySelector('.bonusbet__lay-stake-result');\n    const liabilityEl = container.querySelector('.bonusbet__liability-result');\n    const profitBackEl = container.querySelector('.bonusbet__profit-back');\n    const profitLayEl = container.querySelector('.bonusbet__profit-lay');\n\n    const resetBtn = container.querySelector('.bonusbet__reset');\n\n    function validateFractionalCoefficient(c) { return /^\\d+\\/\\d+$/.test(c); }\n    function validateDecimalCoefficient(c) { return /^\\d+(\\.\\d+)?$/.test(c) \u0026\u0026 parseFloat(c) \u003e 1; }\n    function validateAmericanCoefficient(c) { return /^[-+]?\\d+$/.test(c); }\n\n    function convertFractionToDecimal(f) {\n        var p = f.split('/');\n        if (p.length !== 2) return null;\n        var n = parseFloat(p[0]), d = parseFloat(p[1]);\n        if (isNaN(n) || isNaN(d) || d === 0) return null;\n        return (n / d) + 1;\n    }\n\n    function convertAmericanToDecimal(a) {\n        var v = parseFloat(a);\n        if (isNaN(v)) return null;\n        if (v \u003e 0) return (v / 100) + 1;\n        if (v \u003c 0) return (100 / Math.abs(v)) + 1;\n        return 2;\n    }\n\n    function getDecimal(input) {\n        var fmt = formatSelect.value;\n        var val = input.value.trim();\n        if (fmt === 'Fractional') {\n            if (!validateFractionalCoefficient(val)) return null;\n            return convertFractionToDecimal(val);\n        } else if (fmt === 'Decimal') {\n            if (!validateDecimalCoefficient(val)) return null;\n            return parseFloat(val);\n        } else if (fmt === 'American') {\n            if (!validateAmericanCoefficient(val)) return null;\n            return convertAmericanToDecimal(val);\n        }\n        return null;\n    }\n\n    function calculate() {\n        var bonus = parseFloat(amountInput.value);\n        var betType = typeSelect.value;\n        var backDec = getDecimal(backOddsInput);\n        var commission = parseFloat(commissionInput.value) / 100;\n        if (isNaN(commission)) commission = 0.05;\n\n        \n        if (backDec === null || backDec \u003c= 1) {\n            if (backOddsInput.value.trim()) backOddsInput.classList.add('invalid');\n            resetOutput();\n            return;\n        } else {\n            backOddsInput.classList.remove('invalid');\n        }\n\n        if (isNaN(bonus) || bonus \u003c= 0) { resetOutput(); return; }\n\n        \n        var layVal = layOddsInput.value.trim();\n        var layDec = null;\n        if (layVal) {\n            layDec = getDecimal(layOddsInput);\n            if (layDec === null || layDec \u003c= 1) {\n                layOddsInput.classList.add('invalid');\n                resetOutput();\n                return;\n            } else {\n                layOddsInput.classList.remove('invalid');\n            }\n        } else {\n            layOddsInput.classList.remove('invalid');\n        }\n\n        var layStake, liability, profitBack, profitLay, guaranteedProfit, convRate;\n\n        if (betType === 'snr') {\n            \n            if (layDec) {\n                layStake = (bonus * (backDec - 1)) / (layDec - commission);\n                liability = layStake * (layDec - 1);\n                profitBack = bonus * (backDec - 1) - liability;\n                profitLay = layStake * (1 - commission);\n                guaranteedProfit = Math.min(profitBack, profitLay);\n                convRate = (guaranteedProfit / bonus) * 100;\n            } else {\n                \n                guaranteedProfit = bonus * (backDec - 1) / backDec;\n                convRate = (guaranteedProfit / bonus) * 100;\n                layStake = null;\n            }\n        } else if (betType === 'sr') {\n            \n            if (layDec) {\n                layStake = (bonus * backDec) / (layDec - commission);\n                liability = layStake * (layDec - 1);\n                profitBack = bonus * backDec - liability;\n                profitLay = layStake * (1 - commission);\n                guaranteedProfit = Math.min(profitBack, profitLay);\n                convRate = (guaranteedProfit / bonus) * 100;\n            } else {\n                guaranteedProfit = bonus * (backDec - 1) / backDec + bonus / backDec;\n                convRate = (guaranteedProfit / bonus) * 100;\n                layStake = null;\n            }\n        } else {\n            \n            if (layDec) {\n                layStake = (bonus * backDec) / (layDec - commission);\n                liability = layStake * (layDec - 1);\n                \n                profitBack = bonus * (backDec - 1) - liability;\n                \n                profitLay = layStake * (1 - commission) - bonus + bonus;\n                profitLay = layStake * (1 - commission);\n                guaranteedProfit = Math.min(profitBack, profitLay);\n                convRate = (guaranteedProfit / bonus) * 100;\n            } else {\n                \n                guaranteedProfit = bonus * (1 - 1 / backDec);\n                convRate = (guaranteedProfit / bonus) * 100;\n                layStake = null;\n            }\n        }\n\n        \n        realValueEl.textContent = '$' + guaranteedProfit.toFixed(2);\n        conversionRateEl.textContent = '전환율: ' + convRate.toFixed(1) + '%';\n\n        if (layStake !== null) {\n            layStakeEl.textContent = '$' + layStake.toFixed(2);\n            liabilityEl.textContent = '$' + liability.toFixed(2);\n\n            profitBackEl.textContent = '$' + profitBack.toFixed(2);\n            profitBackEl.className = 'bonusbet__grid-value ' + (profitBack \u003e= 0 ? 'positive' : 'negative');\n\n            profitLayEl.textContent = '$' + profitLay.toFixed(2);\n            profitLayEl.className = 'bonusbet__grid-value ' + (profitLay \u003e= 0 ? 'positive' : 'negative');\n        } else {\n            layStakeEl.textContent = '-';\n            liabilityEl.textContent = '-';\n            profitBackEl.textContent = '-';\n            profitBackEl.className = 'bonusbet__grid-value';\n            profitLayEl.textContent = '-';\n            profitLayEl.className = 'bonusbet__grid-value';\n        }\n    }\n\n    function resetOutput() {\n        realValueEl.textContent = '-';\n        conversionRateEl.textContent = '전환율: -';\n        layStakeEl.textContent = '-';\n        liabilityEl.textContent = '-';\n        profitBackEl.textContent = '-';\n        profitBackEl.className = 'bonusbet__grid-value';\n        profitLayEl.textContent = '-';\n        profitLayEl.className = 'bonusbet__grid-value';\n    }\n\n    function resetAll() {\n        amountInput.value = '';\n        backOddsInput.value = '';\n        layOddsInput.value = '';\n        commissionInput.value = '5';\n        typeSelect.selectedIndex = 0;\n        formatSelect.selectedIndex = 0;\n        backOddsInput.classList.remove('invalid');\n        layOddsInput.classList.remove('invalid');\n        updatePlaceholders();\n        resetOutput();\n    }\n\n    function updatePlaceholders() {\n        var fmt = formatSelect.value;\n        if (fmt === 'Fractional') {\n            backOddsInput.placeholder = '3/1';\n            layOddsInput.placeholder = '3/1';\n        } else if (fmt === 'Decimal') {\n            backOddsInput.placeholder = '4.00';\n            layOddsInput.placeholder = '4.10';\n        } else if (fmt === 'American') {\n            backOddsInput.placeholder = '+300';\n            layOddsInput.placeholder = '+310';\n        }\n    }\n\n    formatSelect.addEventListener('change', function() { updatePlaceholders(); calculate(); });\n    amountInput.addEventListener('input', calculate);\n    typeSelect.addEventListener('change', calculate);\n    backOddsInput.addEventListener('input', calculate);\n    layOddsInput.addEventListener('input', calculate);\n    commissionInput.addEventListener('input', calculate);\n    resetBtn.addEventListener('click', resetAll);\n\n    updatePlaceholders();\n})();\n\u003c/script\u003e","title":"보너스 베팅 전환 계산기"},{"content":" 적중률 계산기 베팅 기록 입력 총 베팅 수 총 베팅 건수 승리 베팅 수 승리 베팅 건수 평균 배당률 (소수점) 베팅의 평균 소수점 배당률 총 베팅액 총 베팅 금액 (선택사항) 총 반환액 총 반환 금액 (선택사항) 결과 적중률 - - 분기 손익분기 적중률 - 엣지 - 손실률 - 베팅당 평균 손익 - 순수익/손실 - ROI - 적중률은 베팅 승률을 보여줍니다. 엣지가 있는지 손익분기율과 비교하세요. 초기화 ","permalink":"https://calculators-odds.com/ko/strike-rate-calculator/","summary":"\u003cstyle\u003e\n    .strikerate {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .strikerate__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .strikerate__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .strikerate__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .strikerate__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #2196F3;\n        color: #2196F3;\n    }\n\n    .strikerate__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n    }\n\n    .strikerate__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .strikerate__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 140px;\n    }\n\n    .strikerate__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .strikerate__input {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .strikerate__input:focus {\n        outline: none;\n        border-color: #2196F3;\n    }\n\n    .strikerate__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .strikerate__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .strikerate__output {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .strikerate__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .strikerate__result-box {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n        border-radius: 8px;\n        padding: 20px;\n        text-align: center;\n        margin-bottom: 20px;\n    }\n\n    .strikerate__result-box.negative {\n        background: rgba(244, 67, 54, 0.15);\n        border-color: #f44336;\n    }\n\n    .strikerate__result-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .strikerate__result-value {\n        font-size: 32px;\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .strikerate__result-box.negative .strikerate__result-value {\n        color: #f44336;\n    }\n\n    .strikerate__result-sub {\n        font-size: 14px;\n        color: rgba(232, 232, 232, 0.6);\n        margin-top: 6px;\n    }\n\n    .strikerate__grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .strikerate__grid-item {\n        background: rgba(255, 255, 255, 0.05);\n        padding: 15px;\n        border-radius: 6px;\n        text-align: center;\n    }\n\n    .strikerate__grid-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .strikerate__grid-value {\n        font-size: 18px;\n        font-weight: bold;\n    }\n\n    .strikerate__grid-value.positive {\n        color: #4CAF50;\n    }\n\n    .strikerate__grid-value.negative {\n        color: #f44336;\n    }\n\n    .strikerate__bar-container {\n        margin-top: 15px;\n        background: rgba(0, 0, 0, 0.3);\n        border-radius: 8px;\n        height: 30px;\n        position: relative;\n        overflow: hidden;\n    }\n\n    .strikerate__bar {\n        height: 100%;\n        border-radius: 8px;\n        transition: width 0.3s ease;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        font-size: 12px;\n        font-weight: bold;\n        color: #fff;\n    }\n\n    .strikerate__bar--win {\n        background: #4CAF50;\n    }\n\n    .strikerate__bar-marker {\n        position: absolute;\n        top: 0;\n        height: 100%;\n        width: 2px;\n        background: #ff9800;\n        z-index: 1;\n    }\n\n    .strikerate__bar-label {\n        position: absolute;\n        top: -18px;\n        font-size: 10px;\n        color: #ff9800;\n        transform: translateX(-50%);\n        white-space: nowrap;\n    }\n\n    .strikerate__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .strikerate__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n    }\n\n    .strikerate__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .strikerate__row {\n            flex-direction: column;\n        }\n        .strikerate__grid {\n            grid-template-columns: 1fr;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"strikerate\"\u003e\n    \u003cdiv class=\"strikerate__title\"\u003e적중률 계산기\u003c/div\u003e\n\n    \u003cdiv class=\"strikerate__container\"\u003e\n        \n        \u003cdiv class=\"strikerate__section\"\u003e\n            \u003cdiv class=\"strikerate__section-title\"\u003e베팅 기록 입력\u003c/div\u003e\n            \u003cdiv class=\"strikerate__row\"\u003e\n                \u003cdiv class=\"strikerate__input-group\"\u003e\n                    \u003clabel class=\"strikerate__label\"\u003e총 베팅 수\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"strikerate__input strikerate__total\" placeholder=\"100\" min=\"1\" step=\"1\" /\u003e\n                    \u003cspan class=\"strikerate__hint\"\u003e총 베팅 건수\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__input-group\"\u003e\n                    \u003clabel class=\"strikerate__label\"\u003e승리 베팅 수\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"strikerate__input strikerate__wins\" placeholder=\"55\" min=\"0\" step=\"1\" /\u003e\n                    \u003cspan class=\"strikerate__hint\"\u003e승리 베팅 건수\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"strikerate__row\"\u003e\n                \u003cdiv class=\"strikerate__input-group\"\u003e\n                    \u003clabel class=\"strikerate__label\"\u003e평균 배당률 (소수점)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"strikerate__input strikerate__avg-odds\" placeholder=\"1.91\" min=\"1.01\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"strikerate__hint\"\u003e베팅의 평균 소수점 배당률\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"strikerate__row\"\u003e\n                \u003cdiv class=\"strikerate__input-group\"\u003e\n                    \u003clabel class=\"strikerate__label\"\u003e총 베팅액\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"strikerate__input strikerate__staked\" placeholder=\"10000\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"strikerate__hint\"\u003e총 베팅 금액 (선택사항)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__input-group\"\u003e\n                    \u003clabel class=\"strikerate__label\"\u003e총 반환액\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"strikerate__input strikerate__returned\" placeholder=\"10500\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"strikerate__hint\"\u003e총 반환 금액 (선택사항)\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"strikerate__output\"\u003e\n            \u003cdiv class=\"strikerate__output-title\"\u003e결과\u003c/div\u003e\n\n            \u003cdiv class=\"strikerate__result-box strikerate__sr-box\"\u003e\n                \u003cdiv class=\"strikerate__result-label\"\u003e적중률\u003c/div\u003e\n                \u003cdiv class=\"strikerate__result-value strikerate__sr-value\"\u003e-\u003c/div\u003e\n                \u003cdiv class=\"strikerate__result-sub strikerate__sr-sub\"\u003e-\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"strikerate__bar-container\"\u003e\n                \u003cdiv class=\"strikerate__bar strikerate__bar--win\" style=\"width: 0%\"\u003e\u003c/div\u003e\n                \u003cdiv class=\"strikerate__bar-marker strikerate__be-marker\" style=\"display: none\"\u003e\n                    \u003cspan class=\"strikerate__bar-label\"\u003e분기\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"strikerate__grid\" style=\"margin-top: 20px;\"\u003e\n                \u003cdiv class=\"strikerate__grid-item\"\u003e\n                    \u003cdiv class=\"strikerate__grid-label\"\u003e손익분기 적중률\u003c/div\u003e\n                    \u003cdiv class=\"strikerate__grid-value strikerate__be-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__grid-item\"\u003e\n                    \u003cdiv class=\"strikerate__grid-label\"\u003e엣지\u003c/div\u003e\n                    \u003cdiv class=\"strikerate__grid-value strikerate__edge-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__grid-item\"\u003e\n                    \u003cdiv class=\"strikerate__grid-label\"\u003e손실률\u003c/div\u003e\n                    \u003cdiv class=\"strikerate__grid-value strikerate__loss-rate\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__grid-item\"\u003e\n                    \u003cdiv class=\"strikerate__grid-label\"\u003e베팅당 평균 손익\u003c/div\u003e\n                    \u003cdiv class=\"strikerate__grid-value strikerate__avg-pl\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__grid-item\"\u003e\n                    \u003cdiv class=\"strikerate__grid-label\"\u003e순수익/손실\u003c/div\u003e\n                    \u003cdiv class=\"strikerate__grid-value strikerate__pl-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__grid-item\"\u003e\n                    \u003cdiv class=\"strikerate__grid-label\"\u003eROI\u003c/div\u003e\n                    \u003cdiv class=\"strikerate__grid-value strikerate__roi-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"strikerate__info\"\u003e\n                적중률은 베팅 승률을 보여줍니다. 엣지가 있는지 손익분기율과 비교하세요.\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cbutton class=\"strikerate__reset\" type=\"button\"\u003e초기화\u003c/button\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const totalInput = container.querySelector('.strikerate__total');\n    const winsInput = container.querySelector('.strikerate__wins');\n    const avgOddsInput = container.querySelector('.strikerate__avg-odds');\n    const stakedInput = container.querySelector('.strikerate__staked');\n    const returnedInput = container.querySelector('.strikerate__returned');\n\n    const srBox = container.querySelector('.strikerate__sr-box');\n    const srValue = container.querySelector('.strikerate__sr-value');\n    const srSub = container.querySelector('.strikerate__sr-sub');\n    const beValue = container.querySelector('.strikerate__be-value');\n    const edgeValue = container.querySelector('.strikerate__edge-value');\n    const lossRate = container.querySelector('.strikerate__loss-rate');\n    const avgPl = container.querySelector('.strikerate__avg-pl');\n    const plValue = container.querySelector('.strikerate__pl-value');\n    const roiValue = container.querySelector('.strikerate__roi-value');\n\n    const winBar = container.querySelector('.strikerate__bar--win');\n    const beMarker = container.querySelector('.strikerate__be-marker');\n\n    const resetBtn = container.querySelector('.strikerate__reset');\n\n    function calculate() {\n        var total = parseInt(totalInput.value);\n        var wins = parseInt(winsInput.value);\n        var avgOdds = parseFloat(avgOddsInput.value);\n        var staked = parseFloat(stakedInput.value);\n        var returned = parseFloat(returnedInput.value);\n\n        if (isNaN(total) || total \u003c= 0) { resetOutput(); return; }\n        if (isNaN(wins) || wins \u003c 0) { resetOutput(); return; }\n\n        if (wins \u003e total) {\n            winsInput.classList.add('invalid');\n            resetOutput(); return;\n        } else {\n            winsInput.classList.remove('invalid');\n        }\n\n        var sr = (wins / total) * 100;\n\n        srValue.textContent = sr.toFixed(1) + '%';\n        srSub.textContent = wins + ' / ' + total;\n\n        lossRate.textContent = (100 - sr).toFixed(1) + '%';\n\n        \n        winBar.style.width = sr + '%';\n        winBar.textContent = sr \u003e= 10 ? sr.toFixed(0) + '%' : '';\n\n        \n        if (!isNaN(avgOdds) \u0026\u0026 avgOdds \u003e 1) {\n            var breakEven = (1 / avgOdds) * 100;\n            beValue.textContent = breakEven.toFixed(1) + '%';\n\n            var edge = sr - breakEven;\n            edgeValue.textContent = (edge \u003e= 0 ? '+' : '') + edge.toFixed(1) + '%';\n            edgeValue.className = 'strikerate__grid-value ' + (edge \u003e= 0 ? 'positive' : 'negative');\n\n            srBox.classList.toggle('negative', edge \u003c 0);\n\n            \n            beMarker.style.display = 'block';\n            beMarker.style.left = Math.min(breakEven, 100) + '%';\n        } else {\n            beValue.textContent = '-';\n            edgeValue.textContent = '-';\n            edgeValue.className = 'strikerate__grid-value';\n            beMarker.style.display = 'none';\n            srBox.classList.remove('negative');\n        }\n\n        \n        if (!isNaN(staked) \u0026\u0026 staked \u003e 0 \u0026\u0026 !isNaN(returned)) {\n            var pl = returned - staked;\n            var roi = (pl / staked) * 100;\n            var avgPlPerBet = pl / total;\n\n            plValue.textContent = (pl \u003e= 0 ? '+$' : '-$') + Math.abs(pl).toFixed(2);\n            plValue.className = 'strikerate__grid-value ' + (pl \u003e= 0 ? 'positive' : 'negative');\n\n            roiValue.textContent = (roi \u003e= 0 ? '+' : '') + roi.toFixed(2) + '%';\n            roiValue.className = 'strikerate__grid-value ' + (roi \u003e= 0 ? 'positive' : 'negative');\n\n            avgPl.textContent = (avgPlPerBet \u003e= 0 ? '+$' : '-$') + Math.abs(avgPlPerBet).toFixed(2);\n            avgPl.className = 'strikerate__grid-value ' + (avgPlPerBet \u003e= 0 ? 'positive' : 'negative');\n        } else {\n            plValue.textContent = '-';\n            plValue.className = 'strikerate__grid-value';\n            roiValue.textContent = '-';\n            roiValue.className = 'strikerate__grid-value';\n            avgPl.textContent = '-';\n            avgPl.className = 'strikerate__grid-value';\n        }\n    }\n\n    function resetOutput() {\n        srValue.textContent = '-'; srSub.textContent = '-';\n        beValue.textContent = '-'; edgeValue.textContent = '-';\n        edgeValue.className = 'strikerate__grid-value';\n        lossRate.textContent = '-'; avgPl.textContent = '-';\n        avgPl.className = 'strikerate__grid-value';\n        plValue.textContent = '-'; plValue.className = 'strikerate__grid-value';\n        roiValue.textContent = '-'; roiValue.className = 'strikerate__grid-value';\n        winBar.style.width = '0%'; winBar.textContent = '';\n        beMarker.style.display = 'none';\n        srBox.classList.remove('negative');\n    }\n\n    function resetAll() {\n        totalInput.value = ''; winsInput.value = '';\n        avgOddsInput.value = ''; stakedInput.value = ''; returnedInput.value = '';\n        winsInput.classList.remove('invalid');\n        resetOutput();\n    }\n\n    [totalInput, winsInput, avgOddsInput, stakedInput, returnedInput].forEach(function(el) {\n        el.addEventListener('input', calculate);\n    });\n    resetBtn.addEventListener('click', resetAll);\n})();\n\u003c/script\u003e","title":"적중률 계산기"},{"content":" 홀드 계산기 (마진) 양쪽 배당률 입력 배당률 포맷 십진법 분수 미국식 사이드 1 배당률 결과 1의 배당률 (예: 팀 A 또는 오버) 사이드 2 배당률 결과 2의 배당률 (예: 팀 B 또는 언더) 결과 홀드 % - - 내재 확률 (사이드 1) - 내재 확률 (사이드 2) - 공정 배당률 (사이드 1) - 공정 배당률 (사이드 2) - 비그 없는 확률 (사이드 1) - 비그 없는 확률 (사이드 2) - 홀드(vig/juice)는 북메이커의 내장 마진입니다. 낮은 홀드 = 더 좋은 가치. 일반적: 사이드 4-5%, 토탈 6-8%. 초기화 ","permalink":"https://calculators-odds.com/ko/hold-calculator/","summary":"\u003cstyle\u003e\n    .hold {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .hold__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .hold__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .hold__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .hold__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #2196F3;\n        color: #2196F3;\n    }\n\n    .hold__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n    }\n\n    .hold__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .hold__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 140px;\n    }\n\n    .hold__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .hold__input, .hold__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .hold__input:focus, .hold__select:focus {\n        outline: none;\n        border-color: #2196F3;\n    }\n\n    .hold__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .hold__select {\n        cursor: pointer;\n    }\n\n    .hold__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .hold__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .hold__output {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .hold__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .hold__result-box {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n        border-radius: 8px;\n        padding: 20px;\n        text-align: center;\n        margin-bottom: 20px;\n    }\n\n    .hold__result-box.high-hold {\n        background: rgba(244, 67, 54, 0.15);\n        border-color: #f44336;\n    }\n\n    .hold__result-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .hold__result-value {\n        font-size: 32px;\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .hold__result-box.high-hold .hold__result-value {\n        color: #f44336;\n    }\n\n    .hold__result-hint {\n        font-size: 12px;\n        margin-top: 8px;\n        color: rgba(232, 232, 232, 0.6);\n    }\n\n    .hold__grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .hold__grid-item {\n        background: rgba(255, 255, 255, 0.05);\n        padding: 15px;\n        border-radius: 6px;\n        text-align: center;\n    }\n\n    .hold__grid-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .hold__grid-value {\n        font-size: 18px;\n        font-weight: bold;\n    }\n\n    .hold__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .hold__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n    }\n\n    .hold__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .hold__row {\n            flex-direction: column;\n        }\n        .hold__grid {\n            grid-template-columns: 1fr;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"hold\"\u003e\n    \u003cdiv class=\"hold__title\"\u003e홀드 계산기 (마진)\u003c/div\u003e\n\n    \u003cdiv class=\"hold__container\"\u003e\n        \n        \u003cdiv class=\"hold__section\"\u003e\n            \u003cdiv class=\"hold__section-title\"\u003e양쪽 배당률 입력\u003c/div\u003e\n            \u003cdiv class=\"hold__row\"\u003e\n                \u003cdiv class=\"hold__input-group\"\u003e\n                    \u003clabel class=\"hold__label\"\u003e배당률 포맷\u003c/label\u003e\n                    \u003cselect class=\"hold__select hold__format\"\u003e\n                        \u003coption value=\"Decimal\"\u003e십진법\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n                        \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n                    \u003c/select\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"hold__row\"\u003e\n                \u003cdiv class=\"hold__input-group\"\u003e\n                    \u003clabel class=\"hold__label\"\u003e사이드 1 배당률\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"hold__input hold__odds1\" placeholder=\"1.91\" /\u003e\n                    \u003cspan class=\"hold__hint\"\u003e결과 1의 배당률 (예: 팀 A 또는 오버)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hold__input-group\"\u003e\n                    \u003clabel class=\"hold__label\"\u003e사이드 2 배당률\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"hold__input hold__odds2\" placeholder=\"1.91\" /\u003e\n                    \u003cspan class=\"hold__hint\"\u003e결과 2의 배당률 (예: 팀 B 또는 언더)\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"hold__output\"\u003e\n            \u003cdiv class=\"hold__output-title\"\u003e결과\u003c/div\u003e\n\n            \u003cdiv class=\"hold__result-box hold__hold-box\"\u003e\n                \u003cdiv class=\"hold__result-label\"\u003e홀드 %\u003c/div\u003e\n                \u003cdiv class=\"hold__result-value hold__hold-value\"\u003e-\u003c/div\u003e\n                \u003cdiv class=\"hold__result-hint hold__hold-hint\"\u003e-\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"hold__grid\"\u003e\n                \u003cdiv class=\"hold__grid-item\"\u003e\n                    \u003cdiv class=\"hold__grid-label\"\u003e내재 확률 (사이드 1)\u003c/div\u003e\n                    \u003cdiv class=\"hold__grid-value hold__ip1\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hold__grid-item\"\u003e\n                    \u003cdiv class=\"hold__grid-label\"\u003e내재 확률 (사이드 2)\u003c/div\u003e\n                    \u003cdiv class=\"hold__grid-value hold__ip2\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hold__grid-item\"\u003e\n                    \u003cdiv class=\"hold__grid-label\"\u003e공정 배당률 (사이드 1)\u003c/div\u003e\n                    \u003cdiv class=\"hold__grid-value hold__fo1\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hold__grid-item\"\u003e\n                    \u003cdiv class=\"hold__grid-label\"\u003e공정 배당률 (사이드 2)\u003c/div\u003e\n                    \u003cdiv class=\"hold__grid-value hold__fo2\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hold__grid-item\"\u003e\n                    \u003cdiv class=\"hold__grid-label\"\u003e비그 없는 확률 (사이드 1)\u003c/div\u003e\n                    \u003cdiv class=\"hold__grid-value hold__fp1\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hold__grid-item\"\u003e\n                    \u003cdiv class=\"hold__grid-label\"\u003e비그 없는 확률 (사이드 2)\u003c/div\u003e\n                    \u003cdiv class=\"hold__grid-value hold__fp2\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"hold__info\"\u003e\n                홀드(vig/juice)는 북메이커의 내장 마진입니다. 낮은 홀드 = 더 좋은 가치. 일반적: 사이드 4-5%, 토탈 6-8%.\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cbutton class=\"hold__reset\" type=\"button\"\u003e초기화\u003c/button\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const formatSelect = container.querySelector('.hold__format');\n    const odds1Input = container.querySelector('.hold__odds1');\n    const odds2Input = container.querySelector('.hold__odds2');\n\n    const holdBox = container.querySelector('.hold__hold-box');\n    const holdValue = container.querySelector('.hold__hold-value');\n    const holdHint = container.querySelector('.hold__hold-hint');\n    const ip1 = container.querySelector('.hold__ip1');\n    const ip2 = container.querySelector('.hold__ip2');\n    const fo1 = container.querySelector('.hold__fo1');\n    const fo2 = container.querySelector('.hold__fo2');\n    const fp1 = container.querySelector('.hold__fp1');\n    const fp2 = container.querySelector('.hold__fp2');\n    const resetBtn = container.querySelector('.hold__reset');\n\n    function validateFractionalCoefficient(c) { return /^\\d+\\/\\d+$/.test(c); }\n    function validateDecimalCoefficient(c) { return /^\\d+(\\.\\d+)?$/.test(c) \u0026\u0026 parseFloat(c) \u003e 1; }\n    function validateAmericanCoefficient(c) { return /^[-+]?\\d+$/.test(c); }\n\n    function convertFractionToDecimal(f) {\n        var p = f.split('/');\n        if (p.length !== 2) return null;\n        var n = parseFloat(p[0]), d = parseFloat(p[1]);\n        if (isNaN(n) || isNaN(d) || d === 0) return null;\n        return (n / d) + 1;\n    }\n\n    function convertAmericanToDecimal(a) {\n        var v = parseFloat(a);\n        if (isNaN(v)) return null;\n        if (v \u003e 0) return (v / 100) + 1;\n        if (v \u003c 0) return (100 / Math.abs(v)) + 1;\n        return 2;\n    }\n\n    function getDecimal(input) {\n        var fmt = formatSelect.value;\n        var val = input.value.trim();\n        if (fmt === 'Fractional') {\n            if (!validateFractionalCoefficient(val)) return null;\n            return convertFractionToDecimal(val);\n        } else if (fmt === 'Decimal') {\n            if (!validateDecimalCoefficient(val)) return null;\n            return parseFloat(val);\n        } else if (fmt === 'American') {\n            if (!validateAmericanCoefficient(val)) return null;\n            return convertAmericanToDecimal(val);\n        }\n        return null;\n    }\n\n    function calculate() {\n        var dec1 = getDecimal(odds1Input);\n        var dec2 = getDecimal(odds2Input);\n\n        if (dec1 === null || dec1 \u003c= 1) {\n            if (odds1Input.value.trim()) odds1Input.classList.add('invalid');\n            resetOutput(); return;\n        } else { odds1Input.classList.remove('invalid'); }\n\n        if (dec2 === null || dec2 \u003c= 1) {\n            if (odds2Input.value.trim()) odds2Input.classList.add('invalid');\n            resetOutput(); return;\n        } else { odds2Input.classList.remove('invalid'); }\n\n        \n        var prob1 = 1 / dec1;\n        var prob2 = 1 / dec2;\n        var totalProb = prob1 + prob2;\n        var hold = (totalProb - 1) * 100;\n\n        \n        var fairP1 = prob1 / totalProb;\n        var fairP2 = prob2 / totalProb;\n\n        \n        var fairO1 = 1 / fairP1;\n        var fairO2 = 1 / fairP2;\n\n        holdValue.textContent = hold.toFixed(2) + '%';\n        holdBox.classList.toggle('high-hold', hold \u003e 5);\n\n        if (hold \u003c= 3) {\n            holdHint.textContent = '낮은 홀드 - 좋은 가치';\n        } else if (hold \u003c= 5) {\n            holdHint.textContent = '평균 홀드';\n        } else if (hold \u003c= 8) {\n            holdHint.textContent = '높은 홀드 - 평균 이하 가치';\n        } else {\n            holdHint.textContent = '매우 높은 홀드 - 나쁜 가치';\n        }\n\n        ip1.textContent = (prob1 * 100).toFixed(1) + '%';\n        ip2.textContent = (prob2 * 100).toFixed(1) + '%';\n\n        fp1.textContent = (fairP1 * 100).toFixed(1) + '%';\n        fp2.textContent = (fairP2 * 100).toFixed(1) + '%';\n\n        fo1.textContent = fairO1.toFixed(3);\n        fo2.textContent = fairO2.toFixed(3);\n    }\n\n    function resetOutput() {\n        holdValue.textContent = '-';\n        holdHint.textContent = '-';\n        holdBox.classList.remove('high-hold');\n        ip1.textContent = '-'; ip2.textContent = '-';\n        fo1.textContent = '-'; fo2.textContent = '-';\n        fp1.textContent = '-'; fp2.textContent = '-';\n    }\n\n    function resetAll() {\n        odds1Input.value = ''; odds2Input.value = '';\n        formatSelect.selectedIndex = 0;\n        odds1Input.classList.remove('invalid');\n        odds2Input.classList.remove('invalid');\n        updatePlaceholders();\n        resetOutput();\n    }\n\n    function updatePlaceholders() {\n        var fmt = formatSelect.value;\n        if (fmt === 'Fractional') {\n            odds1Input.placeholder = '10/11';\n            odds2Input.placeholder = '10/11';\n        } else if (fmt === 'Decimal') {\n            odds1Input.placeholder = '1.91';\n            odds2Input.placeholder = '1.91';\n        } else if (fmt === 'American') {\n            odds1Input.placeholder = '-110';\n            odds2Input.placeholder = '-110';\n        }\n    }\n\n    formatSelect.addEventListener('change', function() { updatePlaceholders(); calculate(); });\n    odds1Input.addEventListener('input', calculate);\n    odds2Input.addEventListener('input', calculate);\n    resetBtn.addEventListener('click', resetAll);\n\n    updatePlaceholders();\n})();\n\u003c/script\u003e","title":"홀드 계산기 - 북메이커 마진"},{"content":" 총 베팅 금액 총 반환 베팅 수 순이익 - ROI 퍼센트 - 평균 판돈 - 베팅당 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/roi-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"roi_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e총 베팅 금액\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-wagered\" type=\"text\" placeholder=\"1000\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e총 반환\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-returned\" type=\"text\" placeholder=\"1100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e베팅 수\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-numbets\" type=\"text\" placeholder=\"50\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e순이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eROI 퍼센트\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-roi\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e평균 판돈\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-avgstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅당 이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-perbet\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('roi_0');\n    var wageredEl = root.querySelector('.js-wagered');\n    var returnedEl = root.querySelector('.js-returned');\n    var numBetsEl = root.querySelector('.js-numbets');\n    var profitEl = root.querySelector('.js-profit');\n    var roiEl = root.querySelector('.js-roi');\n    var avgStakeEl = root.querySelector('.js-avgstake');\n    var perBetEl = root.querySelector('.js-perbet');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var wagered = parseFloat(wageredEl.value);\n        var returned = parseFloat(returnedEl.value);\n        var numBets = parseInt(numBetsEl.value);\n\n        if (isNaN(wagered) || wagered \u003c= 0 || isNaN(returned) || returned \u003c 0) {\n            profitEl.textContent='-'; roiEl.textContent='-'; avgStakeEl.textContent='-'; perBetEl.textContent='-'; return;\n        }\n\n        var profit = returned - wagered;\n        var roi = (profit / wagered) * 100;\n\n        profitEl.textContent = formatNumber(profit);\n        roiEl.textContent = roi.toFixed(2) + '%';\n\n        if (!isNaN(numBets) \u0026\u0026 numBets \u003e 0) {\n            avgStakeEl.textContent = formatNumber(wagered / numBets);\n            perBetEl.textContent = formatNumber(profit / numBets);\n        } else {\n            avgStakeEl.textContent = '-';\n            perBetEl.textContent = '-';\n        }\n    }\n\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        wageredEl.value=''; returnedEl.value=''; numBetsEl.value='';\n        profitEl.textContent='-'; roiEl.textContent='-'; avgStakeEl.textContent='-'; perBetEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ROI 계산기 - 배팅 성과"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 선택 4 선택 5 선택 6 선택 7 선택 8 단위 스테이크 베팅 수 247 총 지분 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/goliath-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"goliath_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 5\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 6\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 7\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 8\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e단위 스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"1\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e247\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2, 3, 4, 5, 6, 7, 8];\n    var root = document.getElementById('goliath_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"골리앗 계산기 - 247개 배팅 시스템"},{"content":" 기대값 계산기 1단계: 베팅 세부사항 입력 배당률 포맷 십진법 분수 미국식 입력할 배당률 형식 배당률 소수: 2.50 | 분수: 3/2 | 미국식: \u0026#43;150 승률(%) 예상 실제 승률 (1-99%) 배팅 금액 (선택사항) 단위당 EV는 비워두세요 결과 기대값 - 위에 값을 입력하세요 EV 백분율 - 가장자리 - 묵시적 확률 - 손익분기 확률 - 장기 예측 10회 베팅: - 100회 베팅: - 1,000회 베팅: - EV = (확률 × 이익) - ((1 - 확률) × 판돈) 초기화 ","permalink":"https://calculators-odds.com/ko/expected-value-calculator/","summary":"\u003cstyle\u003e\n    .ev {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .ev__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .ev__container {\n        width: 100%;\n        max-width: 600px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .ev__section {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .ev__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .ev__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n    }\n\n    .ev__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .ev__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n    }\n\n    .ev__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .ev__input, .ev__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .ev__input:focus, .ev__select:focus {\n        outline: none;\n        border-color: #4CAF50;\n    }\n\n    .ev__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .ev__select {\n        cursor: pointer;\n    }\n\n    .ev__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .ev__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .ev__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .ev__result-box {\n        padding: 25px;\n        border-radius: 8px;\n        text-align: center;\n        margin-bottom: 20px;\n    }\n\n    .ev__result-box.positive {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n    }\n\n    .ev__result-box.negative {\n        background: rgba(244, 67, 54, 0.15);\n        border: 2px solid #f44336;\n    }\n\n    .ev__result-box.neutral {\n        background: rgba(255, 152, 0, 0.15);\n        border: 2px solid #ff9800;\n    }\n\n    .ev__result-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .ev__result-value {\n        font-size: 32px;\n        font-weight: bold;\n    }\n\n    .ev__result-box.positive .ev__result-value {\n        color: #4CAF50;\n    }\n\n    .ev__result-box.negative .ev__result-value {\n        color: #f44336;\n    }\n\n    .ev__result-box.neutral .ev__result-value {\n        color: #ff9800;\n    }\n\n    .ev__verdict {\n        font-size: 16px;\n        font-weight: bold;\n        margin-top: 10px;\n    }\n\n    .ev__output-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .ev__output-item {\n        text-align: center;\n        padding: 15px;\n        background: rgba(255, 255, 255, 0.05);\n        border-radius: 6px;\n    }\n\n    .ev__output-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .ev__output-value {\n        font-size: 18px;\n        font-weight: bold;\n    }\n\n    .ev__output-value.positive {\n        color: #4CAF50;\n    }\n\n    .ev__output-value.negative {\n        color: #f44336;\n    }\n\n    .ev__projection {\n        margin-top: 20px;\n        padding: 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 8px;\n    }\n\n    .ev__projection-title {\n        font-size: 14px;\n        font-weight: bold;\n        margin-bottom: 10px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .ev__projection-row {\n        display: flex;\n        justify-content: space-between;\n        padding: 8px 0;\n        border-bottom: 1px solid rgba(255,255,255,0.05);\n        font-size: 13px;\n    }\n\n    .ev__projection-row:last-child {\n        border-bottom: none;\n    }\n\n    .ev__projection-row span:first-child {\n        color: rgba(232, 232, 232, 0.6);\n    }\n\n    .ev__projection-row span:last-child {\n        font-weight: bold;\n    }\n\n    .ev__formula {\n        margin-top: 15px;\n        padding: 12px;\n        background: rgba(0, 0, 0, 0.2);\n        border-radius: 4px;\n        font-size: 12px;\n        text-align: center;\n        font-family: monospace;\n        color: rgba(232, 232, 232, 0.6);\n    }\n\n    .ev__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n        align-self: center;\n    }\n\n    .ev__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .ev__row {\n            flex-direction: column;\n        }\n        .ev__output-grid {\n            grid-template-columns: 1fr;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"ev\"\u003e\n    \u003cdiv class=\"ev__title\"\u003e기대값 계산기\u003c/div\u003e\n\n    \u003cdiv class=\"ev__container\"\u003e\n        \n        \u003cdiv class=\"ev__section\"\u003e\n            \u003cdiv class=\"ev__section-title\"\u003e1단계: 베팅 세부사항 입력\u003c/div\u003e\n            \u003cdiv class=\"ev__row\"\u003e\n                \u003cdiv class=\"ev__input-group\"\u003e\n                    \u003clabel class=\"ev__label\"\u003e배당률 포맷\u003c/label\u003e\n                    \u003cselect class=\"ev__select ev__odds-type\"\u003e\n                        \u003coption value=\"Decimal\"\u003e십진법\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n                        \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"ev__hint\"\u003e입력할 배당률 형식\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__input-group\"\u003e\n                    \u003clabel class=\"ev__label\"\u003e배당률\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"ev__input ev__odds\" placeholder=\"2.50\" /\u003e\n                    \u003cspan class=\"ev__hint ev__odds-hint\" data-decimal=\"소수: 2.50 | 분수: 3/2 | 미국식: \u0026#43;150\" data-fractional=\"소수: 2.50 | 분수: 3/2 | 미국식: \u0026#43;150\" data-american=\"소수: 2.50 | 분수: 3/2 | 미국식: \u0026#43;150\"\u003e소수: 2.50 | 분수: 3/2 | 미국식: \u0026#43;150\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"ev__row\"\u003e\n                \u003cdiv class=\"ev__input-group\"\u003e\n                    \u003clabel class=\"ev__label\"\u003e승률(%)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"ev__input ev__probability\" placeholder=\"45\" min=\"0\" max=\"100\" step=\"0.1\" /\u003e\n                    \u003cspan class=\"ev__hint\"\u003e예상 실제 승률 (1-99%)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__input-group\"\u003e\n                    \u003clabel class=\"ev__label\"\u003e배팅 금액 (선택사항)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"ev__input ev__stake\" placeholder=\"10.00\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"ev__hint\"\u003e단위당 EV는 비워두세요\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"ev__section\"\u003e\n            \u003cdiv class=\"ev__output-title\"\u003e결과\u003c/div\u003e\n            \u003cdiv class=\"ev__result-box neutral\"\u003e\n                \u003cdiv class=\"ev__result-label\"\u003e기대값\u003c/div\u003e\n                \u003cdiv class=\"ev__result-value ev__ev-value\"\u003e-\u003c/div\u003e\n                \u003cdiv class=\"ev__verdict ev__verdict-text\"\u003e위에 값을 입력하세요\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"ev__output-grid\"\u003e\n                \u003cdiv class=\"ev__output-item\"\u003e\n                    \u003cdiv class=\"ev__output-label\"\u003eEV 백분율\u003c/div\u003e\n                    \u003cdiv class=\"ev__output-value ev__ev-percent\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__output-item\"\u003e\n                    \u003cdiv class=\"ev__output-label\"\u003e가장자리\u003c/div\u003e\n                    \u003cdiv class=\"ev__output-value ev__edge\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__output-item\"\u003e\n                    \u003cdiv class=\"ev__output-label\"\u003e묵시적 확률\u003c/div\u003e\n                    \u003cdiv class=\"ev__output-value ev__implied\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__output-item\"\u003e\n                    \u003cdiv class=\"ev__output-label\"\u003e손익분기 확률\u003c/div\u003e\n                    \u003cdiv class=\"ev__output-value ev__breakeven\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"ev__projection\"\u003e\n                \u003cdiv class=\"ev__projection-title\"\u003e장기 예측\u003c/div\u003e\n                \u003cdiv class=\"ev__projection-row\"\u003e\n                    \u003cspan\u003e10회 베팅:\u003c/span\u003e\n                    \u003cspan class=\"ev__proj-10\"\u003e-\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__projection-row\"\u003e\n                    \u003cspan\u003e100회 베팅:\u003c/span\u003e\n                    \u003cspan class=\"ev__proj-100\"\u003e-\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__projection-row\"\u003e\n                    \u003cspan\u003e1,000회 베팅:\u003c/span\u003e\n                    \u003cspan class=\"ev__proj-1000\"\u003e-\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"ev__formula\"\u003e\n                EV = (확률 × 이익) - ((1 - 확률) × 판돈)\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cbutton class=\"ev__reset\" type=\"button\"\u003e초기화\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const oddsTypeSelect = container.querySelector('.ev__odds-type');\n    const oddsInput = container.querySelector('.ev__odds');\n    const oddsHint = container.querySelector('.ev__odds-hint');\n    const probabilityInput = container.querySelector('.ev__probability');\n    const stakeInput = container.querySelector('.ev__stake');\n    const resetBtn = container.querySelector('.ev__reset');\n\n    const evValue = container.querySelector('.ev__ev-value');\n    const verdictText = container.querySelector('.ev__verdict-text');\n    const resultBox = container.querySelector('.ev__result-box');\n    const evPercent = container.querySelector('.ev__ev-percent');\n    const edgeEl = container.querySelector('.ev__edge');\n    const impliedEl = container.querySelector('.ev__implied');\n    const breakevenEl = container.querySelector('.ev__breakeven');\n    const proj10 = container.querySelector('.ev__proj-10');\n    const proj100 = container.querySelector('.ev__proj-100');\n    const proj1000 = container.querySelector('.ev__proj-1000');\n\n    const placeholders = {\n        'Decimal': '2.50',\n        'Fractional': '3/2',\n        'American': '+150'\n    };\n\n    const hints = {\n        'Decimal': '소수점 배당률 입력 (예: 2.50, 1.80, 3.00)',\n        'Fractional': '분수 배당률 입력 (예: 3\\/2, 5\\/1, 11\\/4)',\n        'American': '미국식 배당률 입력 (예: \\u002b150, -110, \\u002b200)'\n    };\n\n    \n    function validateFractionalCoefficient(coefficient) {\n        return /^\\d+\\/\\d+$/.test(coefficient);\n    }\n\n    function validateDecimalCoefficient(coefficient) {\n        return /^\\d+(\\.\\d+)?$/.test(coefficient) \u0026\u0026 parseFloat(coefficient) \u003e 1;\n    }\n\n    function validateAmericanCoefficient(coefficient) {\n        return /^[-+]?\\d+$/.test(coefficient);\n    }\n\n    \n    function convertFractionToDecimal(fraction) {\n        const parts = fraction.split('/');\n        if (parts.length !== 2) return null;\n        const numerator = parseFloat(parts[0]);\n        const denominator = parseFloat(parts[1]);\n        if (isNaN(numerator) || isNaN(denominator) || denominator === 0) return null;\n        return (numerator / denominator) + 1;\n    }\n\n    function convertAmericanToDecimal(americanOdds) {\n        const oddsValue = parseFloat(americanOdds);\n        if (isNaN(oddsValue)) return null;\n        if (oddsValue \u003e 0) {\n            return (oddsValue / 100) + 1;\n        } else if (oddsValue \u003c 0) {\n            return (100 / Math.abs(oddsValue)) + 1;\n        }\n        return 2;\n    }\n\n    function getDecimalOdds() {\n        const type = oddsTypeSelect.value;\n        const odds = oddsInput.value.trim();\n\n        if (type === 'Fractional') {\n            if (!validateFractionalCoefficient(odds)) return null;\n            return convertFractionToDecimal(odds);\n        } else if (type === 'Decimal') {\n            if (!validateDecimalCoefficient(odds)) return null;\n            return parseFloat(odds);\n        } else if (type === 'American') {\n            if (!validateAmericanCoefficient(odds)) return null;\n            return convertAmericanToDecimal(odds);\n        }\n        return null;\n    }\n\n    function calculate() {\n        const decimalOdds = getDecimalOdds();\n        const winProb = parseFloat(probabilityInput.value) / 100;\n        const stake = parseFloat(stakeInput.value) || 1; \n\n        \n        if (decimalOdds === null || decimalOdds \u003c= 1) {\n            if (oddsInput.value.trim() !== '') {\n                oddsInput.classList.add('invalid');\n            }\n            resetOutput();\n            return;\n        } else {\n            oddsInput.classList.remove('invalid');\n        }\n\n        \n        if (isNaN(winProb) || winProb \u003c= 0 || winProb \u003e= 1) {\n            if (probabilityInput.value.trim() !== '') {\n                probabilityInput.classList.add('invalid');\n            }\n            resetOutput();\n            return;\n        } else {\n            probabilityInput.classList.remove('invalid');\n        }\n\n        \n        const profit = (decimalOdds - 1) * stake;\n        const ev = (winProb * profit) - ((1 - winProb) * stake);\n        const evPerUnit = (winProb * decimalOdds) - 1;\n        const evPct = evPerUnit * 100;\n\n        const impliedProb = 1 / decimalOdds;\n        const edge = winProb - impliedProb;\n\n        \n        if (stakeInput.value) {\n            evValue.textContent = (ev \u003e= 0 ? '+$' : '-$') + Math.abs(ev).toFixed(2);\n        } else {\n            evValue.textContent = (evPerUnit \u003e= 0 ? '+' : '') + evPerUnit.toFixed(4);\n        }\n\n        \n        resultBox.classList.remove('positive', 'negative', 'neutral');\n        if (ev \u003e 0.001) {\n            resultBox.classList.add('positive');\n            verdictText.textContent = '양의 EV(\\u002bEV)';\n        } else if (ev \u003c -0.001) {\n            resultBox.classList.add('negative');\n            verdictText.textContent = '네거티브 EV(-EV)';\n        } else {\n            resultBox.classList.add('neutral');\n            verdictText.textContent = '손익분기점';\n        }\n\n        \n        evPercent.textContent = (evPct \u003e= 0 ? '+' : '') + evPct.toFixed(2) + '%';\n        evPercent.className = 'ev__output-value ' + (evPct \u003e= 0 ? 'positive' : 'negative');\n\n        edgeEl.textContent = (edge \u003e= 0 ? '+' : '') + (edge * 100).toFixed(2) + '%';\n        edgeEl.className = 'ev__output-value ' + (edge \u003e= 0 ? 'positive' : 'negative');\n\n        impliedEl.textContent = (impliedProb * 100).toFixed(2) + '%';\n        breakevenEl.textContent = (impliedProb * 100).toFixed(2) + '%';\n\n        \n        proj10.textContent = (ev \u003e= 0 ? '+$' : '-$') + Math.abs(ev * 10).toFixed(2);\n        proj100.textContent = (ev \u003e= 0 ? '+$' : '-$') + Math.abs(ev * 100).toFixed(2);\n        proj1000.textContent = (ev \u003e= 0 ? '+$' : '-$') + Math.abs(ev * 1000).toFixed(2);\n    }\n\n    function resetOutput() {\n        evValue.textContent = '-';\n        verdictText.textContent = '위에 값을 입력하세요';\n        resultBox.classList.remove('positive', 'negative');\n        resultBox.classList.add('neutral');\n\n        evPercent.textContent = '-';\n        evPercent.className = 'ev__output-value';\n        edgeEl.textContent = '-';\n        edgeEl.className = 'ev__output-value';\n        impliedEl.textContent = '-';\n        breakevenEl.textContent = '-';\n\n        proj10.textContent = '-';\n        proj100.textContent = '-';\n        proj1000.textContent = '-';\n    }\n\n    function resetAll() {\n        oddsInput.value = '';\n        probabilityInput.value = '';\n        stakeInput.value = '';\n        oddsInput.classList.remove('invalid');\n        probabilityInput.classList.remove('invalid');\n        oddsTypeSelect.selectedIndex = 0;\n        updatePlaceholder();\n        resetOutput();\n    }\n\n    \n    function updatePlaceholder() {\n        const type = oddsTypeSelect.value;\n        oddsInput.placeholder = placeholders[type];\n        oddsHint.textContent = hints[type];\n    }\n\n    \n    oddsTypeSelect.addEventListener('change', function() {\n        updatePlaceholder();\n        calculate();\n    });\n\n    oddsInput.addEventListener('input', calculate);\n    probabilityInput.addEventListener('input', calculate);\n    stakeInput.addEventListener('input', calculate);\n    resetBtn.addEventListener('click', resetAll);\n\n    \n    updatePlaceholder();\n})();\n\u003c/script\u003e","title":"기대값 계산기 - 배팅 가치 분석"},{"content":" 내재 확률 계산기 1단계: 배당률 형식 선택 십진법 분수 미국식 2단계: 각 결과의 배당률 입력 결과 1 — 결과 2 — + 결과 추가 소수 배당률 입력 (예: 2.50) 결과 총 확률 — 북메이커 마진(Vig) — 양수 = 북메이커 이익, 음수 = 가치 기회 공정한 승률(Vig 없음) 초기화 ","permalink":"https://calculators-odds.com/ko/implied-probability-calculator/","summary":"\u003cstyle\u003e\n.implied {\n    margin: 15px 0;\n    background-color: #1e2328;\n    border-radius: 8px;\n    padding: 20px;\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n    color: #e8e8e8;\n}\n\n.implied__title {\n    font-size: 22px;\n    font-weight: bold;\n    text-align: center;\n    margin-bottom: 25px;\n    color: #e8e8e8;\n}\n\n.implied__section {\n    background: #2d333b;\n    border-radius: 6px;\n    padding: 15px;\n    margin-bottom: 15px;\n}\n\n.implied__section-title {\n    font-size: 14px;\n    font-weight: 600;\n    color: #4CAF50;\n    margin-bottom: 15px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n.implied__format-selector {\n    display: flex;\n    gap: 8px;\n    flex-wrap: wrap;\n}\n\n.implied__format-btn {\n    flex: 1;\n    min-width: 100px;\n    padding: 10px 15px;\n    border: 2px solid #4CAF50;\n    background: transparent;\n    color: #e8e8e8;\n    cursor: pointer;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    transition: all 0.2s;\n}\n\n.implied__format-btn:hover {\n    background: rgba(76, 175, 80, 0.2);\n}\n\n.implied__format-btn.active {\n    background: #4CAF50;\n    color: #fff;\n}\n\n.implied__outcomes-list {\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n}\n\n.implied__outcome {\n    display: grid;\n    grid-template-columns: 100px 1fr 70px auto;\n    gap: 10px;\n    align-items: center;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.2);\n    border-radius: 4px;\n}\n\n.implied__outcome-label {\n    font-weight: 500;\n    font-size: 13px;\n    color: #e8e8e8;\n}\n\n.implied__outcome-input {\n    width: 100%;\n    padding: 10px 12px;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: 4px;\n    font-size: 15px;\n    background: #2d333b;\n    color: #e8e8e8;\n    transition: border-color 0.2s;\n}\n\n.implied__outcome-input:focus {\n    outline: none;\n    border-color: #4CAF50;\n}\n\n.implied__outcome-input::placeholder {\n    color: rgba(232, 232, 232, 0.4);\n}\n\n.implied__outcome-input.invalid {\n    border-color: #f44336;\n}\n\n.implied__outcome-prob {\n    font-weight: 600;\n    font-size: 14px;\n    text-align: right;\n    color: #4CAF50;\n}\n\n.implied__outcome-remove {\n    padding: 6px 10px;\n    background: #f44336;\n    color: #fff;\n    border: none;\n    border-radius: 4px;\n    cursor: pointer;\n    font-size: 12px;\n    transition: background 0.2s;\n}\n\n.implied__outcome-remove:hover {\n    background: #d32f2f;\n}\n\n.implied__add-btn {\n    width: 100%;\n    padding: 10px;\n    margin-top: 10px;\n    background: transparent;\n    border: 2px dashed rgba(255, 255, 255, 0.3);\n    color: #e8e8e8;\n    border-radius: 4px;\n    cursor: pointer;\n    font-size: 14px;\n    transition: all 0.2s;\n}\n\n.implied__add-btn:hover {\n    border-color: #4CAF50;\n    color: #4CAF50;\n}\n\n.implied__hint {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.5);\n    margin-top: 8px;\n}\n\n.implied__results-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 15px;\n}\n\n.implied__result-box {\n    background: rgba(0, 0, 0, 0.2);\n    padding: 15px;\n    border-radius: 4px;\n    text-align: center;\n}\n\n.implied__result-label {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.7);\n    text-transform: uppercase;\n    margin-bottom: 5px;\n}\n\n.implied__result-value {\n    font-size: 22px;\n    font-weight: 700;\n    color: #e8e8e8;\n}\n\n.implied__result-value.positive {\n    color: #4CAF50;\n}\n\n.implied__result-value.negative {\n    color: #f44336;\n}\n\n.implied__result-value.warning {\n    color: #ff9800;\n}\n\n.implied__fair-odds {\n    margin-top: 15px;\n    display: none;\n}\n\n.implied__fair-grid {\n    display: grid;\n    gap: 8px;\n}\n\n.implied__fair-row {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.2);\n    border-radius: 4px;\n}\n\n.implied__fair-label {\n    font-size: 13px;\n    color: rgba(232, 232, 232, 0.8);\n}\n\n.implied__fair-value {\n    font-weight: 600;\n    color: #4CAF50;\n}\n\n.implied__fair-prob {\n    font-size: 12px;\n    color: rgba(232, 232, 232, 0.6);\n    margin-left: 8px;\n}\n\n.implied__buttons {\n    display: flex;\n    justify-content: center;\n    margin-top: 15px;\n}\n\n.implied__btn {\n    padding: 10px 30px;\n    border: none;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.2s;\n}\n\n.implied__btn--secondary {\n    background: #666;\n    color: #fff;\n}\n\n.implied__btn--secondary:hover {\n    background: #555;\n}\n\n@media (max-width: 600px) {\n    .implied__outcome {\n        grid-template-columns: 1fr;\n        gap: 8px;\n    }\n\n    .implied__outcome-prob {\n        text-align: left;\n    }\n\n    .implied__results-grid {\n        grid-template-columns: 1fr;\n    }\n\n    .implied__format-btn {\n        min-width: 80px;\n    }\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"implied\"\u003e\n    \u003cdiv class=\"implied__title\"\u003e내재 확률 계산기\u003c/div\u003e\n\n    \u003cdiv class=\"implied__section\"\u003e\n        \u003cdiv class=\"implied__section-title\"\u003e1단계: 배당률 형식 선택\u003c/div\u003e\n        \u003cdiv class=\"implied__format-selector\"\u003e\n            \u003cbutton type=\"button\" class=\"implied__format-btn active\" data-type=\"decimal\"\u003e십진법\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"implied__format-btn\" data-type=\"fractional\"\u003e분수\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"implied__format-btn\" data-type=\"american\"\u003e미국식\u003c/button\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"implied__section\"\u003e\n        \u003cdiv class=\"implied__section-title\"\u003e2단계: 각 결과의 배당률 입력\u003c/div\u003e\n        \u003cdiv class=\"implied__outcomes-list\"\u003e\n            \u003cdiv class=\"implied__outcome\" data-index=\"0\"\u003e\n                \u003cspan class=\"implied__outcome-label\"\u003e결과 1\u003c/span\u003e\n                \u003cinput type=\"text\" class=\"implied__outcome-input\" placeholder=\"2.50\" data-index=\"0\"\u003e\n                \u003cspan class=\"implied__outcome-prob\" data-index=\"0\"\u003e—\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"implied__outcome\" data-index=\"1\"\u003e\n                \u003cspan class=\"implied__outcome-label\"\u003e결과 2\u003c/span\u003e\n                \u003cinput type=\"text\" class=\"implied__outcome-input\" placeholder=\"2.50\" data-index=\"1\"\u003e\n                \u003cspan class=\"implied__outcome-prob\" data-index=\"1\"\u003e—\u003c/span\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n        \u003cbutton type=\"button\" class=\"implied__add-btn\"\u003e+ 결과 추가\u003c/button\u003e\n        \u003cdiv class=\"implied__hint implied__hint-format\"\u003e소수 배당률 입력 (예: 2.50)\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"implied__section\"\u003e\n        \u003cdiv class=\"implied__section-title\"\u003e결과\u003c/div\u003e\n        \u003cdiv class=\"implied__results-grid\"\u003e\n            \u003cdiv class=\"implied__result-box\"\u003e\n                \u003cdiv class=\"implied__result-label\"\u003e총 확률\u003c/div\u003e\n                \u003cdiv class=\"implied__result-value\" id=\"impliedTotalProb\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"implied__result-box\"\u003e\n                \u003cdiv class=\"implied__result-label\"\u003e북메이커 마진(Vig)\u003c/div\u003e\n                \u003cdiv class=\"implied__result-value\" id=\"impliedMargin\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"implied__hint\"\u003e양수 = 북메이커 이익, 음수 = 가치 기회\u003c/div\u003e\n\n        \u003cdiv class=\"implied__fair-odds\" id=\"impliedFairOdds\"\u003e\n            \u003cdiv class=\"implied__section-title\" style=\"margin-top: 15px;\"\u003e공정한 승률(Vig 없음)\u003c/div\u003e\n            \u003cdiv class=\"implied__fair-grid\" id=\"impliedFairOddsContent\"\u003e\u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"implied__buttons\"\u003e\n        \u003cbutton type=\"button\" class=\"implied__btn implied__btn--secondary\" id=\"impliedReset\"\u003e초기화\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n    let currentOddsType = 'decimal';\n    let outcomeCount = 2;\n    const maxOutcomes = 10;\n\n    const placeholders = {\n        decimal: '2.50',\n        fractional: '3\\/2',\n        american: '\\u002b150'\n    };\n\n    const hints = {\n        decimal: '소수 배당률 입력 (예: 2.50)',\n        fractional: '분수 배당률 입력 (예: 3\\/2)',\n        american: '미국식 배당률 입력 (예: \\u002b150 또는 -200)'\n    };\n\n    const outcomeLabels = [\n        '결과 1',\n        '결과 2',\n        '결과 3 (무승부)',\n        'Outcome 4',\n        'Outcome 5',\n        'Outcome 6',\n        'Outcome 7',\n        'Outcome 8',\n        'Outcome 9',\n        'Outcome 10'\n    ];\n\n    function validateDecimal(value) {\n        return /^\\d+(\\.\\d+)?$/.test(value) \u0026\u0026 parseFloat(value) \u003e 1;\n    }\n\n    function validateFractional(value) {\n        return /^\\d+\\/\\d+$/.test(value);\n    }\n\n    function validateAmerican(value) {\n        return /^[+-]?\\d+$/.test(value) \u0026\u0026 (parseInt(value) \u003e= 100 || parseInt(value) \u003c= -100);\n    }\n\n    function fractionalToDecimal(fraction) {\n        const parts = fraction.split('/');\n        return (parseFloat(parts[0]) / parseFloat(parts[1])) + 1;\n    }\n\n    function americanToDecimal(american) {\n        const value = parseInt(american);\n        return value \u003e 0 ? (value / 100) + 1 : (100 / Math.abs(value)) + 1;\n    }\n\n    function decimalToFractional(decimal) {\n        const profit = decimal - 1;\n        const gcd = (a, b) =\u003e b ? gcd(b, a % b) : a;\n        const precision = 1000;\n        const numerator = Math.round(profit * precision);\n        const denominator = precision;\n        const divisor = gcd(numerator, denominator);\n        return `${numerator / divisor}/${denominator / divisor}`;\n    }\n\n    function decimalToAmerican(decimal) {\n        if (decimal \u003e= 2) {\n            return '+' + Math.round((decimal - 1) * 100);\n        }\n        return Math.round(-100 / (decimal - 1));\n    }\n\n    function getDecimalOdds(value) {\n        if (!value) return null;\n\n        if (currentOddsType === 'decimal') {\n            return validateDecimal(value) ? parseFloat(value) : null;\n        } else if (currentOddsType === 'fractional') {\n            return validateFractional(value) ? fractionalToDecimal(value) : null;\n        } else if (currentOddsType === 'american') {\n            return validateAmerican(value) ? americanToDecimal(value) : null;\n        }\n        return null;\n    }\n\n    function impliedProbability(decimalOdds) {\n        return (1 / decimalOdds) * 100;\n    }\n\n    function fairOdds(decimalOdds, totalImpliedProb) {\n        const impliedProb = 1 / decimalOdds;\n        const fairProb = impliedProb / (totalImpliedProb / 100);\n        return 1 / fairProb;\n    }\n\n    function updatePlaceholders() {\n        const inputs = container.querySelectorAll('.implied__outcome-input');\n        inputs.forEach(input =\u003e {\n            input.placeholder = placeholders[currentOddsType];\n        });\n\n        const hintEl = container.querySelector('.implied__hint-format');\n        if (hintEl) {\n            hintEl.textContent = hints[currentOddsType];\n        }\n    }\n\n    function addOutcome() {\n        if (outcomeCount \u003e= maxOutcomes) return;\n\n        const outcomesList = container.querySelector('.implied__outcomes-list');\n\n        const newOutcome = document.createElement('div');\n        newOutcome.className = 'implied__outcome';\n        newOutcome.dataset.index = outcomeCount;\n        newOutcome.innerHTML = `\n            \u003cspan class=\"implied__outcome-label\"\u003e${outcomeLabels[outcomeCount] || 'Outcome ' + (outcomeCount + 1)}\u003c/span\u003e\n            \u003cinput type=\"text\" class=\"implied__outcome-input\" placeholder=\"${placeholders[currentOddsType]}\" data-index=\"${outcomeCount}\"\u003e\n            \u003cspan class=\"implied__outcome-prob\" data-index=\"${outcomeCount}\"\u003e—\u003c/span\u003e\n            \u003cbutton type=\"button\" class=\"implied__outcome-remove\"\u003e✕\u003c/button\u003e\n        `;\n\n        outcomesList.appendChild(newOutcome);\n        outcomeCount++;\n\n        newOutcome.querySelector('.implied__outcome-input').addEventListener('input', calculate);\n        newOutcome.querySelector('.implied__outcome-remove').addEventListener('click', function() {\n            removeOutcome(newOutcome);\n        });\n\n        if (outcomeCount \u003e= maxOutcomes) {\n            container.querySelector('.implied__add-btn').style.display = 'none';\n        }\n    }\n\n    function removeOutcome(outcomeEl) {\n        outcomeEl.remove();\n        outcomeCount--;\n\n        const outcomes = container.querySelectorAll('.implied__outcome');\n        outcomes.forEach((outcome, index) =\u003e {\n            outcome.dataset.index = index;\n            outcome.querySelector('.implied__outcome-input').dataset.index = index;\n            outcome.querySelector('.implied__outcome-prob').dataset.index = index;\n        });\n\n        if (outcomeCount \u003c maxOutcomes) {\n            container.querySelector('.implied__add-btn').style.display = 'block';\n        }\n\n        calculate();\n    }\n\n    function calculate() {\n        const inputs = container.querySelectorAll('.implied__outcome-input');\n        const probs = container.querySelectorAll('.implied__outcome-prob');\n\n        let totalImpliedProb = 0;\n        const decimalOddsList = [];\n\n        inputs.forEach((input, index) =\u003e {\n            const value = input.value.trim();\n            const decOdds = getDecimalOdds(value);\n\n            if (value \u0026\u0026 !decOdds) {\n                input.classList.add('invalid');\n                probs[index].textContent = '—';\n                decimalOddsList.push(null);\n            } else if (decOdds) {\n                input.classList.remove('invalid');\n                const prob = impliedProbability(decOdds);\n                totalImpliedProb += prob;\n                decimalOddsList.push(decOdds);\n                probs[index].textContent = prob.toFixed(1) + '%';\n            } else {\n                input.classList.remove('invalid');\n                probs[index].textContent = '—';\n                decimalOddsList.push(null);\n            }\n        });\n\n        const totalProbEl = container.querySelector('#impliedTotalProb');\n        const marginEl = container.querySelector('#impliedMargin');\n        const fairOddsContainer = container.querySelector('#impliedFairOdds');\n        const fairOddsContent = container.querySelector('#impliedFairOddsContent');\n\n        if (totalImpliedProb \u003e 0) {\n            totalProbEl.textContent = totalImpliedProb.toFixed(2) + '%';\n\n            const margin = totalImpliedProb - 100;\n            marginEl.textContent = (margin \u003e= 0 ? '+' : '') + margin.toFixed(2) + '%';\n\n            if (totalImpliedProb \u003e 100) {\n                totalProbEl.className = 'implied__result-value warning';\n                marginEl.className = 'implied__result-value negative';\n            } else if (totalImpliedProb \u003c 100) {\n                totalProbEl.className = 'implied__result-value positive';\n                marginEl.className = 'implied__result-value positive';\n            } else {\n                totalProbEl.className = 'implied__result-value';\n                marginEl.className = 'implied__result-value';\n            }\n\n            const validOdds = decimalOddsList.filter(o =\u003e o !== null);\n            if (validOdds.length \u003e= 2) {\n                fairOddsContainer.style.display = 'block';\n                let fairOddsHTML = '';\n\n                decimalOddsList.forEach((decOdds, index) =\u003e {\n                    if (decOdds) {\n                        const fair = fairOdds(decOdds, totalImpliedProb);\n                        const fairProb = impliedProbability(fair);\n                        let displayOdds = fair.toFixed(2);\n\n                        if (currentOddsType === 'fractional') {\n                            displayOdds = decimalToFractional(fair);\n                        } else if (currentOddsType === 'american') {\n                            displayOdds = decimalToAmerican(fair);\n                        }\n\n                        fairOddsHTML += `\n                            \u003cdiv class=\"implied__fair-row\"\u003e\n                                \u003cspan class=\"implied__fair-label\"\u003e${outcomeLabels[index] || 'Outcome ' + (index + 1)}\u003c/span\u003e\n                                \u003cspan\u003e\n                                    \u003cspan class=\"implied__fair-value\"\u003e${displayOdds}\u003c/span\u003e\n                                    \u003cspan class=\"implied__fair-prob\"\u003e(${fairProb.toFixed(1)}%)\u003c/span\u003e\n                                \u003c/span\u003e\n                            \u003c/div\u003e\n                        `;\n                    }\n                });\n\n                fairOddsContent.innerHTML = fairOddsHTML;\n            } else {\n                fairOddsContainer.style.display = 'none';\n            }\n        } else {\n            totalProbEl.textContent = '—';\n            totalProbEl.className = 'implied__result-value';\n            marginEl.textContent = '—';\n            marginEl.className = 'implied__result-value';\n            fairOddsContainer.style.display = 'none';\n        }\n    }\n\n    function reset() {\n        const outcomes = container.querySelectorAll('.implied__outcome');\n        outcomes.forEach((outcome, index) =\u003e {\n            if (index \u003e= 2) outcome.remove();\n        });\n        outcomeCount = 2;\n\n        container.querySelectorAll('.implied__outcome-input').forEach(input =\u003e {\n            input.value = '';\n            input.classList.remove('invalid');\n        });\n\n        container.querySelectorAll('.implied__outcome-prob').forEach(prob =\u003e {\n            prob.textContent = '—';\n        });\n\n        container.querySelector('#impliedTotalProb').textContent = '—';\n        container.querySelector('#impliedTotalProb').className = 'implied__result-value';\n        container.querySelector('#impliedMargin').textContent = '—';\n        container.querySelector('#impliedMargin').className = 'implied__result-value';\n        container.querySelector('#impliedFairOdds').style.display = 'none';\n        container.querySelector('.implied__add-btn').style.display = 'block';\n    }\n\n    \n    container.querySelectorAll('.implied__format-btn').forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            container.querySelectorAll('.implied__format-btn').forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            currentOddsType = this.dataset.type;\n            updatePlaceholders();\n            calculate();\n        });\n    });\n\n    container.querySelectorAll('.implied__outcome-input').forEach(input =\u003e {\n        input.addEventListener('input', calculate);\n    });\n\n    container.querySelector('.implied__add-btn').addEventListener('click', addOutcome);\n    container.querySelector('#impliedReset').addEventListener('click', reset);\n})();\n\u003c/script\u003e","title":"내재 확률 계산기 - 배당률을 확률로"},{"content":" 노-비그 공정 배당률 계산기 1단계: 배당률 형식 선택 십진법 분수 미국식 2단계: 북메이커 배당률 입력 결과 1 북메이커 확률 묵시적인 문제 — 공정한 조사 — 공정한 승률(No-Vig) — 결과 2 북메이커 확률 묵시적인 문제 — 공정한 조사 — 공정한 승률(No-Vig) — + 결과 추가 소수 배당률 입력 (예: 2.50) 결과 총 마진 — 비그/주스 — 100% 이상 = 북메이커 이익 마진 초기화 ","permalink":"https://calculators-odds.com/ko/no-vig-calculator/","summary":"\u003cstyle\u003e\n.novig {\n    margin: 15px 0;\n    background-color: #1e2328;\n    border-radius: 8px;\n    padding: 20px;\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n    color: #e8e8e8;\n}\n\n.novig__title {\n    font-size: 22px;\n    font-weight: bold;\n    text-align: center;\n    margin-bottom: 25px;\n    color: #e8e8e8;\n}\n\n.novig__section {\n    background: #2d333b;\n    border-radius: 6px;\n    padding: 15px;\n    margin-bottom: 15px;\n}\n\n.novig__section-title {\n    font-size: 14px;\n    font-weight: 600;\n    color: #4CAF50;\n    margin-bottom: 15px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n.novig__format-selector {\n    display: flex;\n    gap: 8px;\n    flex-wrap: wrap;\n}\n\n.novig__format-btn {\n    flex: 1;\n    min-width: 100px;\n    padding: 10px 15px;\n    border: 2px solid #4CAF50;\n    background: transparent;\n    color: #e8e8e8;\n    cursor: pointer;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    transition: all 0.2s;\n}\n\n.novig__format-btn:hover {\n    background: rgba(76, 175, 80, 0.2);\n}\n\n.novig__format-btn.active {\n    background: #4CAF50;\n    color: #fff;\n}\n\n.novig__outcomes-list {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n}\n\n.novig__outcome {\n    background: rgba(0, 0, 0, 0.2);\n    border-radius: 4px;\n    padding: 12px;\n}\n\n.novig__outcome-header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    margin-bottom: 10px;\n}\n\n.novig__outcome-label {\n    font-weight: 600;\n    font-size: 14px;\n    color: #4CAF50;\n}\n\n.novig__outcome-remove {\n    padding: 4px 8px;\n    background: #f44336;\n    color: #fff;\n    border: none;\n    border-radius: 3px;\n    cursor: pointer;\n    font-size: 11px;\n    transition: background 0.2s;\n}\n\n.novig__outcome-remove:hover {\n    background: #d32f2f;\n}\n\n.novig__outcome-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr 1fr 1fr;\n    gap: 10px;\n    align-items: end;\n}\n\n.novig__field {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n}\n\n.novig__field-label {\n    font-size: 10px;\n    color: rgba(232, 232, 232, 0.6);\n    text-transform: uppercase;\n}\n\n.novig__input {\n    width: 100%;\n    padding: 10px;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: 4px;\n    font-size: 14px;\n    background: #2d333b;\n    color: #e8e8e8;\n    transition: border-color 0.2s;\n    box-sizing: border-box;\n}\n\n.novig__input:focus {\n    outline: none;\n    border-color: #4CAF50;\n}\n\n.novig__input::placeholder {\n    color: rgba(232, 232, 232, 0.4);\n}\n\n.novig__input.invalid {\n    border-color: #f44336;\n}\n\n.novig__value {\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.3);\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 600;\n    text-align: center;\n}\n\n.novig__value.implied {\n    color: rgba(232, 232, 232, 0.8);\n}\n\n.novig__value.fair-prob {\n    color: #4CAF50;\n}\n\n.novig__value.fair-odds {\n    color: #2196F3;\n}\n\n.novig__add-btn {\n    width: 100%;\n    padding: 10px;\n    margin-top: 10px;\n    background: transparent;\n    border: 2px dashed rgba(255, 255, 255, 0.3);\n    color: #e8e8e8;\n    border-radius: 4px;\n    cursor: pointer;\n    font-size: 14px;\n    transition: all 0.2s;\n}\n\n.novig__add-btn:hover {\n    border-color: #4CAF50;\n    color: #4CAF50;\n}\n\n.novig__hint {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.5);\n    margin-top: 8px;\n}\n\n.novig__summary-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 15px;\n}\n\n.novig__summary-box {\n    background: rgba(0, 0, 0, 0.2);\n    padding: 15px;\n    border-radius: 4px;\n    text-align: center;\n}\n\n.novig__summary-label {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.7);\n    text-transform: uppercase;\n    margin-bottom: 5px;\n}\n\n.novig__summary-value {\n    font-size: 24px;\n    font-weight: 700;\n    color: #e8e8e8;\n}\n\n.novig__summary-value.good {\n    color: #4CAF50;\n}\n\n.novig__summary-value.bad {\n    color: #f44336;\n}\n\n.novig__summary-value.warning {\n    color: #ff9800;\n}\n\n.novig__buttons {\n    display: flex;\n    justify-content: center;\n    margin-top: 15px;\n}\n\n.novig__btn {\n    padding: 10px 30px;\n    border: none;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.2s;\n}\n\n.novig__btn--secondary {\n    background: #666;\n    color: #fff;\n}\n\n.novig__btn--secondary:hover {\n    background: #555;\n}\n\n@media (max-width: 600px) {\n    .novig__outcome-grid {\n        grid-template-columns: 1fr 1fr;\n    }\n\n    .novig__summary-grid {\n        grid-template-columns: 1fr;\n    }\n\n    .novig__format-btn {\n        min-width: 80px;\n    }\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"novig\"\u003e\n    \u003cdiv class=\"novig__title\"\u003e노-비그 공정 배당률 계산기\u003c/div\u003e\n\n    \u003cdiv class=\"novig__section\"\u003e\n        \u003cdiv class=\"novig__section-title\"\u003e1단계: 배당률 형식 선택\u003c/div\u003e\n        \u003cdiv class=\"novig__format-selector\"\u003e\n            \u003cbutton type=\"button\" class=\"novig__format-btn active\" data-type=\"decimal\"\u003e십진법\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"novig__format-btn\" data-type=\"fractional\"\u003e분수\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"novig__format-btn\" data-type=\"american\"\u003e미국식\u003c/button\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"novig__section\"\u003e\n        \u003cdiv class=\"novig__section-title\"\u003e2단계: 북메이커 배당률 입력\u003c/div\u003e\n        \u003cdiv class=\"novig__outcomes-list\"\u003e\n            \u003cdiv class=\"novig__outcome\" data-index=\"0\"\u003e\n                \u003cdiv class=\"novig__outcome-header\"\u003e\n                    \u003cspan class=\"novig__outcome-label\"\u003e결과 1\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"novig__outcome-grid\"\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003e북메이커 확률\u003c/span\u003e\n                        \u003cinput type=\"text\" class=\"novig__input novig__odds-input\" data-index=\"0\" placeholder=\"2.50\"\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003e묵시적인 문제\u003c/span\u003e\n                        \u003cdiv class=\"novig__value implied\" data-index=\"0\"\u003e—\u003c/div\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003e공정한 조사\u003c/span\u003e\n                        \u003cdiv class=\"novig__value fair-prob\" data-index=\"0\"\u003e—\u003c/div\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003e공정한 승률(No-Vig)\u003c/span\u003e\n                        \u003cdiv class=\"novig__value fair-odds\" data-index=\"0\"\u003e—\u003c/div\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"novig__outcome\" data-index=\"1\"\u003e\n                \u003cdiv class=\"novig__outcome-header\"\u003e\n                    \u003cspan class=\"novig__outcome-label\"\u003e결과 2\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"novig__outcome-grid\"\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003e북메이커 확률\u003c/span\u003e\n                        \u003cinput type=\"text\" class=\"novig__input novig__odds-input\" data-index=\"1\" placeholder=\"2.50\"\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003e묵시적인 문제\u003c/span\u003e\n                        \u003cdiv class=\"novig__value implied\" data-index=\"1\"\u003e—\u003c/div\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003e공정한 조사\u003c/span\u003e\n                        \u003cdiv class=\"novig__value fair-prob\" data-index=\"1\"\u003e—\u003c/div\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003e공정한 승률(No-Vig)\u003c/span\u003e\n                        \u003cdiv class=\"novig__value fair-odds\" data-index=\"1\"\u003e—\u003c/div\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n        \u003cbutton type=\"button\" class=\"novig__add-btn\"\u003e+ 결과 추가\u003c/button\u003e\n        \u003cdiv class=\"novig__hint novig__hint-format\"\u003e소수 배당률 입력 (예: 2.50)\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"novig__section\"\u003e\n        \u003cdiv class=\"novig__section-title\"\u003e결과\u003c/div\u003e\n        \u003cdiv class=\"novig__summary-grid\"\u003e\n            \u003cdiv class=\"novig__summary-box\"\u003e\n                \u003cdiv class=\"novig__summary-label\"\u003e총 마진\u003c/div\u003e\n                \u003cdiv class=\"novig__summary-value\" id=\"novigTotalImplied\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"novig__summary-box\"\u003e\n                \u003cdiv class=\"novig__summary-label\"\u003e비그/주스\u003c/div\u003e\n                \u003cdiv class=\"novig__summary-value\" id=\"novigVig\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"novig__hint\"\u003e100% 이상 = 북메이커 이익 마진\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"novig__buttons\"\u003e\n        \u003cbutton type=\"button\" class=\"novig__btn novig__btn--secondary\" id=\"novigReset\"\u003e초기화\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n    let currentOddsType = 'decimal';\n    let outcomeCount = 2;\n    const maxOutcomes = 10;\n\n    const placeholders = {\n        decimal: '2.50',\n        fractional: '3\\/2',\n        american: '\\u002b150'\n    };\n\n    const hints = {\n        decimal: '소수 배당률 입력 (예: 2.50)',\n        fractional: '분수 배당률 입력 (예: 3\\/2)',\n        american: '미국식 배당률 입력 (예: \\u002b150 또는 -200)'\n    };\n\n    const outcomeLabels = [\n        '결과 1',\n        '결과 2',\n        '결과 3 (무승부)',\n        'Outcome 4',\n        'Outcome 5',\n        'Outcome 6',\n        'Outcome 7',\n        'Outcome 8',\n        'Outcome 9',\n        'Outcome 10'\n    ];\n\n    function validateDecimal(value) {\n        return /^\\d+(\\.\\d+)?$/.test(value) \u0026\u0026 parseFloat(value) \u003e 1;\n    }\n\n    function validateFractional(value) {\n        return /^\\d+\\/\\d+$/.test(value);\n    }\n\n    function validateAmerican(value) {\n        const cleaned = value.replace(/^\\+/, '');\n        return /^-?\\d+$/.test(cleaned) \u0026\u0026 (Math.abs(parseInt(cleaned)) \u003e= 100);\n    }\n\n    function fractionalToDecimal(fraction) {\n        const parts = fraction.split('/');\n        return (parseFloat(parts[0]) / parseFloat(parts[1])) + 1;\n    }\n\n    function americanToDecimal(american) {\n        const value = parseInt(american.replace(/^\\+/, ''));\n        return value \u003e 0 ? (value / 100) + 1 : (100 / Math.abs(value)) + 1;\n    }\n\n    function decimalToFractional(decimal) {\n        const profit = decimal - 1;\n        const gcd = (a, b) =\u003e b ? gcd(b, a % b) : a;\n        const precision = 100;\n        const numerator = Math.round(profit * precision);\n        const denominator = precision;\n        const divisor = gcd(numerator, denominator);\n        return `${numerator / divisor}/${denominator / divisor}`;\n    }\n\n    function decimalToAmerican(decimal) {\n        if (decimal \u003e= 2) {\n            return '+' + Math.round((decimal - 1) * 100);\n        }\n        return Math.round(-100 / (decimal - 1)).toString();\n    }\n\n    function getDecimalOdds(value) {\n        if (!value) return null;\n\n        if (currentOddsType === 'decimal') {\n            return validateDecimal(value) ? parseFloat(value) : null;\n        } else if (currentOddsType === 'fractional') {\n            return validateFractional(value) ? fractionalToDecimal(value) : null;\n        } else if (currentOddsType === 'american') {\n            return validateAmerican(value) ? americanToDecimal(value) : null;\n        }\n        return null;\n    }\n\n    function formatOdds(decimalOdds) {\n        if (currentOddsType === 'decimal') {\n            return decimalOdds.toFixed(2);\n        } else if (currentOddsType === 'fractional') {\n            return decimalToFractional(decimalOdds);\n        } else if (currentOddsType === 'american') {\n            return decimalToAmerican(decimalOdds);\n        }\n        return decimalOdds.toFixed(2);\n    }\n\n    function updatePlaceholders() {\n        container.querySelectorAll('.novig__odds-input').forEach(input =\u003e {\n            input.placeholder = placeholders[currentOddsType];\n        });\n\n        const hintEl = container.querySelector('.novig__hint-format');\n        if (hintEl) {\n            hintEl.textContent = hints[currentOddsType];\n        }\n    }\n\n    function addOutcome() {\n        if (outcomeCount \u003e= maxOutcomes) return;\n\n        const outcomesList = container.querySelector('.novig__outcomes-list');\n\n        const newOutcome = document.createElement('div');\n        newOutcome.className = 'novig__outcome';\n        newOutcome.dataset.index = outcomeCount;\n        newOutcome.innerHTML = `\n            \u003cdiv class=\"novig__outcome-header\"\u003e\n                \u003cspan class=\"novig__outcome-label\"\u003e${outcomeLabels[outcomeCount] || 'Outcome ' + (outcomeCount + 1)}\u003c/span\u003e\n                \u003cbutton type=\"button\" class=\"novig__outcome-remove\"\u003e✕\u003c/button\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"novig__outcome-grid\"\u003e\n                \u003cdiv class=\"novig__field\"\u003e\n                    \u003cspan class=\"novig__field-label\"\u003e북메이커 확률\u003c/span\u003e\n                    \u003cinput type=\"text\" class=\"novig__input novig__odds-input\" data-index=\"${outcomeCount}\" placeholder=\"${placeholders[currentOddsType]}\"\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"novig__field\"\u003e\n                    \u003cspan class=\"novig__field-label\"\u003e묵시적인 문제\u003c/span\u003e\n                    \u003cdiv class=\"novig__value implied\" data-index=\"${outcomeCount}\"\u003e—\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"novig__field\"\u003e\n                    \u003cspan class=\"novig__field-label\"\u003e공정한 조사\u003c/span\u003e\n                    \u003cdiv class=\"novig__value fair-prob\" data-index=\"${outcomeCount}\"\u003e—\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"novig__field\"\u003e\n                    \u003cspan class=\"novig__field-label\"\u003e공정한 승률(No-Vig)\u003c/span\u003e\n                    \u003cdiv class=\"novig__value fair-odds\" data-index=\"${outcomeCount}\"\u003e—\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        `;\n\n        outcomesList.appendChild(newOutcome);\n        outcomeCount++;\n\n        newOutcome.querySelector('.novig__odds-input').addEventListener('input', calculate);\n        newOutcome.querySelector('.novig__outcome-remove').addEventListener('click', function() {\n            removeOutcome(newOutcome);\n        });\n\n        if (outcomeCount \u003e= maxOutcomes) {\n            container.querySelector('.novig__add-btn').style.display = 'none';\n        }\n\n        calculate();\n    }\n\n    function removeOutcome(outcomeEl) {\n        if (outcomeCount \u003c= 2) return;\n\n        outcomeEl.remove();\n        outcomeCount--;\n\n        const outcomes = container.querySelectorAll('.novig__outcome');\n        outcomes.forEach((outcome, index) =\u003e {\n            outcome.dataset.index = index;\n            outcome.querySelector('.novig__odds-input').dataset.index = index;\n            outcome.querySelectorAll('.novig__value').forEach(v =\u003e v.dataset.index = index);\n        });\n\n        if (outcomeCount \u003c maxOutcomes) {\n            container.querySelector('.novig__add-btn').style.display = 'block';\n        }\n\n        calculate();\n    }\n\n    function calculate() {\n        const inputs = container.querySelectorAll('.novig__odds-input');\n        const impliedCells = container.querySelectorAll('.novig__value.implied');\n        const fairProbCells = container.querySelectorAll('.novig__value.fair-prob');\n        const fairOddsCells = container.querySelectorAll('.novig__value.fair-odds');\n\n        let totalImplied = 0;\n        const impliedProbs = [];\n\n        inputs.forEach((input, index) =\u003e {\n            const value = input.value.trim();\n            const decOdds = getDecimalOdds(value);\n\n            if (value \u0026\u0026 !decOdds) {\n                input.classList.add('invalid');\n                impliedCells[index].textContent = '—';\n                impliedProbs.push(null);\n            } else if (decOdds) {\n                input.classList.remove('invalid');\n                const implied = (1 / decOdds) * 100;\n                totalImplied += implied;\n                impliedProbs.push(implied);\n                impliedCells[index].textContent = implied.toFixed(1) + '%';\n            } else {\n                input.classList.remove('invalid');\n                impliedCells[index].textContent = '—';\n                impliedProbs.push(null);\n            }\n        });\n\n        const totalImpliedEl = container.querySelector('#novigTotalImplied');\n        const vigEl = container.querySelector('#novigVig');\n\n        if (totalImplied \u003e 0) {\n            totalImpliedEl.textContent = totalImplied.toFixed(2) + '%';\n\n            const vig = totalImplied - 100;\n            vigEl.textContent = (vig \u003e= 0 ? '+' : '') + vig.toFixed(2) + '%';\n\n            if (vig \u003e 10) {\n                vigEl.className = 'novig__summary-value bad';\n                totalImpliedEl.className = 'novig__summary-value bad';\n            } else if (vig \u003e 5) {\n                vigEl.className = 'novig__summary-value warning';\n                totalImpliedEl.className = 'novig__summary-value warning';\n            } else if (vig \u003e 0) {\n                vigEl.className = 'novig__summary-value';\n                totalImpliedEl.className = 'novig__summary-value';\n            } else {\n                vigEl.className = 'novig__summary-value good';\n                totalImpliedEl.className = 'novig__summary-value good';\n            }\n\n            impliedProbs.forEach((implied, index) =\u003e {\n                if (implied !== null) {\n                    const fairProb = (implied / totalImplied) * 100;\n                    fairProbCells[index].textContent = fairProb.toFixed(1) + '%';\n\n                    const fairDecimalOdds = 100 / fairProb;\n                    fairOddsCells[index].textContent = formatOdds(fairDecimalOdds);\n                } else {\n                    fairProbCells[index].textContent = '—';\n                    fairOddsCells[index].textContent = '—';\n                }\n            });\n        } else {\n            totalImpliedEl.textContent = '—';\n            totalImpliedEl.className = 'novig__summary-value';\n            vigEl.textContent = '—';\n            vigEl.className = 'novig__summary-value';\n\n            fairProbCells.forEach(cell =\u003e cell.textContent = '—');\n            fairOddsCells.forEach(cell =\u003e cell.textContent = '—');\n        }\n    }\n\n    function reset() {\n        const outcomes = container.querySelectorAll('.novig__outcome');\n        outcomes.forEach((outcome, index) =\u003e {\n            if (index \u003e= 2) outcome.remove();\n        });\n        outcomeCount = 2;\n\n        container.querySelectorAll('.novig__odds-input').forEach(input =\u003e {\n            input.value = '';\n            input.classList.remove('invalid');\n        });\n\n        container.querySelectorAll('.novig__value.implied').forEach(cell =\u003e cell.textContent = '—');\n        container.querySelectorAll('.novig__value.fair-prob').forEach(cell =\u003e cell.textContent = '—');\n        container.querySelectorAll('.novig__value.fair-odds').forEach(cell =\u003e cell.textContent = '—');\n\n        container.querySelector('#novigTotalImplied').textContent = '—';\n        container.querySelector('#novigTotalImplied').className = 'novig__summary-value';\n        container.querySelector('#novigVig').textContent = '—';\n        container.querySelector('#novigVig').className = 'novig__summary-value';\n\n        container.querySelector('.novig__add-btn').style.display = 'block';\n    }\n\n    \n    container.querySelectorAll('.novig__format-btn').forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            container.querySelectorAll('.novig__format-btn').forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            currentOddsType = this.dataset.type;\n            updatePlaceholders();\n            calculate();\n        });\n    });\n\n    container.querySelectorAll('.novig__odds-input').forEach(input =\u003e {\n        input.addEventListener('input', calculate);\n    });\n\n    container.querySelector('.novig__add-btn').addEventListener('click', addOutcome);\n    container.querySelector('#novigReset').addEventListener('click', reset);\n})();\n\u003c/script\u003e","title":"노비그 계산기 - 공정 배당률 계산"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 선택 4 + 선택 항목 추가 − 제거 스테이크 결합 확률 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/accumulator-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"acca_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections js-selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row calc-wrap__sel-row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row calc-wrap__sel-row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row calc-wrap__sel-row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row calc-wrap__sel-row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row calc-wrap__row--actions\"\u003e\n        \u003cbutton class=\"calc-wrap__btn calc-wrap__btn--sm js-add\" type=\"button\"\u003e+ 선택 항목 추가\u003c/button\u003e\n        \u003cbutton class=\"calc-wrap__btn calc-wrap__btn--sm calc-wrap__btn--outline js-remove\" type=\"button\"\u003e− 제거\u003c/button\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e결합 확률\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-combined\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const root = document.getElementById('acca_0');\n    const formatEl = root.querySelector('.js-format');\n    const selectionsEl = root.querySelector('.js-selections');\n    const stakeEl = root.querySelector('.js-stake');\n    const combinedEl = root.querySelector('.js-combined');\n    const payoutEl = root.querySelector('.js-payout');\n    const profitEl = root.querySelector('.js-profit');\n    const addBtn = root.querySelector('.js-add');\n    const removeBtn = root.querySelector('.js-remove');\n    const resetBtn = root.querySelector('.js-reset');\n    const selLabel = '선택';\n\n    function getOddsInputs() { return root.querySelectorAll('.js-odds'); }\n\n    function update() {\n        const format = formatEl.value;\n        const oddsInputs = getOddsInputs();\n        let combined = 1, allValid = true;\n\n        oddsInputs.forEach(function(input) {\n            const d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); }\n            if (d) combined *= d; else allValid = false;\n        });\n\n        const stake = parseFloat(stakeEl.value);\n        if (!allValid) { combinedEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n\n        combinedEl.textContent = combined.toFixed(2);\n        if (!stake || stake \u003c= 0) { payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n\n        const payout = combined * stake;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - stake);\n    }\n\n    addBtn.addEventListener('click', function() {\n        const count = getOddsInputs().length;\n        if (count \u003e= 20) return;\n        const row = document.createElement('div');\n        row.className = 'calc-wrap__row calc-wrap__sel-row';\n        row.innerHTML = '\u003clabel class=\"calc-wrap__label\"\u003e' + selLabel + ' ' + (count + 1) + '\u003c/label\u003e\u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"' + getOddsPlaceholder(formatEl.value) + '\" /\u003e';\n        selectionsEl.appendChild(row);\n    });\n\n    removeBtn.addEventListener('click', function() {\n        const rows = selectionsEl.querySelectorAll('.calc-wrap__sel-row');\n        if (rows.length \u003e 2) { rows[rows.length - 1].remove(); update(); }\n    });\n\n    formatEl.addEventListener('change', function() {\n        getOddsInputs().forEach(i =\u003e i.placeholder = getOddsPlaceholder(formatEl.value));\n        update();\n    });\n    root.addEventListener('input', update);\n\n    resetBtn.addEventListener('click', function() {\n        const rows = selectionsEl.querySelectorAll('.calc-wrap__sel-row');\n        rows.forEach(function(r, i) { if (i \u003e= 4) r.remove(); });\n        getOddsInputs().forEach(i =\u003e { i.value = ''; i.classList.remove('invalid'); });\n        stakeEl.value = ''; formatEl.selectedIndex = 0;\n        combinedEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-';\n    });\n})();\n\u003c/script\u003e","title":"다폴 배팅 계산기 - 다중 선택 계산"},{"content":" 배당률 포맷 소수 분수 미국식 확률 스테이크 규칙 4 아니요 예 공제 0p5p10p15p20p25p30p35p40p45p50p55p60p65p70p75p80p85p90p 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/single-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"single_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e확률\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e규칙 4\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-rule4-toggle\"\u003e\n            \u003coption value=\"no\"\u003e아니요\u003c/option\u003e\n            \u003coption value=\"yes\"\u003e예\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row calc-wrap__row--hidden js-rule4-row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e공제\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-rule4-value\"\u003e\n            \u003coption value=\"0\"\u003e0p\u003c/option\u003e\u003coption value=\"5\"\u003e5p\u003c/option\u003e\u003coption value=\"10\"\u003e10p\u003c/option\u003e\u003coption value=\"15\"\u003e15p\u003c/option\u003e\u003coption value=\"20\"\u003e20p\u003c/option\u003e\u003coption value=\"25\"\u003e25p\u003c/option\u003e\u003coption value=\"30\"\u003e30p\u003c/option\u003e\u003coption value=\"35\"\u003e35p\u003c/option\u003e\u003coption value=\"40\"\u003e40p\u003c/option\u003e\u003coption value=\"45\"\u003e45p\u003c/option\u003e\u003coption value=\"50\"\u003e50p\u003c/option\u003e\u003coption value=\"55\"\u003e55p\u003c/option\u003e\u003coption value=\"60\"\u003e60p\u003c/option\u003e\u003coption value=\"65\"\u003e65p\u003c/option\u003e\u003coption value=\"70\"\u003e70p\u003c/option\u003e\u003coption value=\"75\"\u003e75p\u003c/option\u003e\u003coption value=\"80\"\u003e80p\u003c/option\u003e\u003coption value=\"85\"\u003e85p\u003c/option\u003e\u003coption value=\"90\"\u003e90p\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const root = document.getElementById('single_0');\n    const formatEl = root.querySelector('.js-format');\n    const oddsEl = root.querySelector('.js-odds');\n    const stakeEl = root.querySelector('.js-stake');\n    const rule4Toggle = root.querySelector('.js-rule4-toggle');\n    const rule4Row = root.querySelector('.js-rule4-row');\n    const rule4Value = root.querySelector('.js-rule4-value');\n    const payoutEl = root.querySelector('.js-payout');\n    const profitEl = root.querySelector('.js-profit');\n    const resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        const format = formatEl.value;\n        const decimal = convertToDecimal(oddsEl.value.trim(), format);\n        const stake = parseFloat(stakeEl.value);\n\n        if (decimal === null) { oddsEl.classList.add('invalid'); }\n        else { oddsEl.classList.remove('invalid'); }\n\n        rule4Row.classList.toggle('calc-wrap__row--hidden', rule4Toggle.value !== 'yes');\n\n        if (!decimal || !stake || stake \u003c= 0) {\n            payoutEl.textContent = '-';\n            profitEl.textContent = '-';\n            return;\n        }\n\n        let payout = decimal * stake;\n        if (rule4Toggle.value === 'yes') {\n            const r4 = parseFloat(rule4Value.value) || 0;\n            const profit = payout - stake;\n            payout = stake + profit * (1 - r4 / 100);\n        }\n\n        const profit = payout - stake;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(profit);\n    }\n\n    formatEl.addEventListener('change', function() {\n        oddsEl.placeholder = getOddsPlaceholder(formatEl.value);\n        update();\n    });\n    [oddsEl, stakeEl].forEach(el =\u003e el.addEventListener('input', update));\n    [rule4Toggle, rule4Value].forEach(el =\u003e el.addEventListener('change', update));\n\n    resetBtn.addEventListener('click', function() {\n        oddsEl.value = ''; stakeEl.value = '';\n        formatEl.selectedIndex = 0; rule4Toggle.selectedIndex = 0; rule4Value.selectedIndex = 0;\n        oddsEl.classList.remove('invalid');\n        rule4Row.classList.add('calc-wrap__row--hidden');\n        payoutEl.textContent = '-'; profitEl.textContent = '-';\n    });\n})();\n\u003c/script\u003e","title":"단폴 배팅 계산기 - 즉시 수익 계산"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 스테이크 결합 확률 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/double-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"double_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections js-selections\"\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e결합 확률\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-combined\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const root = document.getElementById('double_0');\n    const formatEl = root.querySelector('.js-format');\n    const oddsInputs = root.querySelectorAll('.js-odds');\n    const stakeEl = root.querySelector('.js-stake');\n    const combinedEl = root.querySelector('.js-combined');\n    const payoutEl = root.querySelector('.js-payout');\n    const profitEl = root.querySelector('.js-profit');\n    const resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        const format = formatEl.value;\n        let combined = 1;\n        let allValid = true;\n\n        oddsInputs.forEach(function(input) {\n            const d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); }\n            if (d) combined *= d; else allValid = false;\n        });\n\n        const stake = parseFloat(stakeEl.value);\n\n        if (!allValid) {\n            combinedEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-';\n            return;\n        }\n\n        combinedEl.textContent = combined.toFixed(2);\n        if (!stake || stake \u003c= 0) { payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n\n        const payout = combined * stake;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - stake);\n    }\n\n    formatEl.addEventListener('change', function() {\n        oddsInputs.forEach(i =\u003e i.placeholder = getOddsPlaceholder(formatEl.value));\n        update();\n    });\n    oddsInputs.forEach(el =\u003e el.addEventListener('input', update));\n    stakeEl.addEventListener('input', update);\n\n    resetBtn.addEventListener('click', function() {\n        oddsInputs.forEach(i =\u003e { i.value = ''; i.classList.remove('invalid'); });\n        stakeEl.value = ''; formatEl.selectedIndex = 0;\n        combinedEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-';\n    });\n})();\n\u003c/script\u003e","title":"더블 배팅 계산기 - 2개 선택 수익"},{"content":" 더칭 계산기 1단계: 베팅 설정 배당률 포맷 십진법 분수 미국식 입력할 배당률 형식 총 지분 선택 간에 분배할 총 금액 2단계: 선택 입력 # 배당률 배팅 금액 수익 확률 + 선택 항목 추가 결과 잠재적 수익 - 이익 - 묵시적 확률 - 더칭은 어떤 선택이 이기든 동일한 이익을 보장하도록 판돈을 분배합니다. 최소 2개의 선택을 입력하세요. 초기화 ","permalink":"https://calculators-odds.com/ko/dutching-calculator/","summary":"\u003cstyle\u003e\n    .dutch {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .dutch__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .dutch__container {\n        width: 100%;\n        max-width: 800px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .dutch__section {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .dutch__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .dutch__settings {\n        display: flex;\n        gap: 20px;\n        flex-wrap: wrap;\n    }\n\n    .dutch__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 150px;\n    }\n\n    .dutch__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .dutch__input, .dutch__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .dutch__input:focus, .dutch__select:focus {\n        outline: none;\n        border-color: #4CAF50;\n    }\n\n    .dutch__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .dutch__select {\n        cursor: pointer;\n    }\n\n    .dutch__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .dutch__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .dutch__selections-header {\n        display: grid;\n        grid-template-columns: 40px 1fr 100px 100px 80px 70px;\n        gap: 10px;\n        padding: 10px 0;\n        border-bottom: 1px solid rgba(255,255,255,0.2);\n        font-weight: bold;\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n    }\n\n    .dutch__selection-row {\n        display: grid;\n        grid-template-columns: 40px 1fr 100px 100px 80px 70px;\n        gap: 10px;\n        padding: 12px 0;\n        border-bottom: 1px solid rgba(255,255,255,0.05);\n        align-items: center;\n    }\n\n    .dutch__selection-num {\n        font-weight: bold;\n        color: #4CAF50;\n        font-size: 14px;\n    }\n\n    .dutch__selection-input {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 10px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 14px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .dutch__selection-input:focus {\n        outline: none;\n        border-color: #4CAF50;\n    }\n\n    .dutch__selection-input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .dutch__selection-stake,\n    .dutch__selection-return,\n    .dutch__selection-prob {\n        font-weight: bold;\n        text-align: right;\n        font-size: 14px;\n    }\n\n    .dutch__selection-return {\n        color: #4CAF50;\n    }\n\n    .dutch__selection-prob {\n        color: rgba(232, 232, 232, 0.7);\n    }\n\n    .dutch__remove-btn {\n        background: rgba(244, 67, 54, 0.2);\n        color: #f44336;\n        border: 1px solid #f44336;\n        border-radius: 4px;\n        padding: 6px 10px;\n        cursor: pointer;\n        font-size: 11px;\n        transition: all 0.2s;\n    }\n\n    .dutch__remove-btn:hover {\n        background: #f44336;\n        color: white;\n    }\n\n    .dutch__add-btn {\n        margin-top: 15px;\n        padding: 12px 20px;\n        background: rgba(76, 175, 80, 0.2);\n        color: #4CAF50;\n        border: 1px solid #4CAF50;\n        border-radius: 4px;\n        cursor: pointer;\n        font-size: 14px;\n        transition: all 0.2s;\n    }\n\n    .dutch__add-btn:hover {\n        background: #4CAF50;\n        color: white;\n    }\n\n    .dutch__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .dutch__output-grid {\n        display: grid;\n        grid-template-columns: repeat(3, 1fr);\n        gap: 15px;\n    }\n\n    .dutch__output-item {\n        text-align: center;\n        padding: 15px;\n        background: rgba(255, 255, 255, 0.05);\n        border-radius: 6px;\n    }\n\n    .dutch__output-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .dutch__output-value {\n        font-size: 24px;\n        font-weight: bold;\n    }\n\n    .dutch__output-value.positive {\n        color: #4CAF50;\n    }\n\n    .dutch__output-value.negative {\n        color: #f44336;\n    }\n\n    .dutch__output-value.warning {\n        color: #ff9800;\n    }\n\n    .dutch__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .dutch__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n        align-self: center;\n    }\n\n    .dutch__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 768px) {\n        .dutch__selections-header {\n            display: none;\n        }\n        .dutch__selection-row {\n            grid-template-columns: 30px 1fr 70px;\n            gap: 8px;\n            padding: 15px 0;\n        }\n        .dutch__selection-row .dutch__selection-stake,\n        .dutch__selection-row .dutch__selection-return,\n        .dutch__selection-row .dutch__selection-prob {\n            display: none;\n        }\n        .dutch__mobile-results {\n            grid-column: 2 / 3;\n            display: flex;\n            gap: 10px;\n            font-size: 12px;\n            margin-top: 5px;\n        }\n        .dutch__output-grid {\n            grid-template-columns: 1fr;\n        }\n        .dutch__settings {\n            flex-direction: column;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"dutch\"\u003e\n    \u003cdiv class=\"dutch__title\"\u003e더칭 계산기\u003c/div\u003e\n\n    \u003cdiv class=\"dutch__container\"\u003e\n        \n        \u003cdiv class=\"dutch__section\"\u003e\n            \u003cdiv class=\"dutch__section-title\"\u003e1단계: 베팅 설정\u003c/div\u003e\n            \u003cdiv class=\"dutch__settings\"\u003e\n                \u003cdiv class=\"dutch__input-group\"\u003e\n                    \u003clabel class=\"dutch__label\"\u003e배당률 포맷\u003c/label\u003e\n                    \u003cselect class=\"dutch__select dutch__odds-type\"\u003e\n                        \u003coption value=\"Decimal\"\u003e십진법\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n                        \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"dutch__hint\"\u003e입력할 배당률 형식\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"dutch__input-group\"\u003e\n                    \u003clabel class=\"dutch__label\"\u003e총 지분\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"dutch__input dutch__total-stake\" placeholder=\"100\" min=\"0\" step=\"0.01\" value=\"100\" /\u003e\n                    \u003cspan class=\"dutch__hint\"\u003e선택 간에 분배할 총 금액\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"dutch__section\"\u003e\n            \u003cdiv class=\"dutch__section-title\"\u003e2단계: 선택 입력\u003c/div\u003e\n            \u003cdiv class=\"dutch__selections-header\"\u003e\n                \u003cdiv\u003e#\u003c/div\u003e\n                \u003cdiv\u003e배당률\u003c/div\u003e\n                \u003cdiv\u003e배팅 금액\u003c/div\u003e\n                \u003cdiv\u003e수익\u003c/div\u003e\n                \u003cdiv\u003e확률\u003c/div\u003e\n                \u003cdiv\u003e\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"dutch__selections-list\"\u003e\n                \n            \u003c/div\u003e\n            \u003cbutton type=\"button\" class=\"dutch__add-btn\"\u003e+ 선택 항목 추가\u003c/button\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"dutch__section\"\u003e\n            \u003cdiv class=\"dutch__output-title\"\u003e결과\u003c/div\u003e\n            \u003cdiv class=\"dutch__output-grid\"\u003e\n                \u003cdiv class=\"dutch__output-item\"\u003e\n                    \u003cdiv class=\"dutch__output-label\"\u003e잠재적 수익\u003c/div\u003e\n                    \u003cdiv class=\"dutch__output-value dutch__return-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"dutch__output-item\"\u003e\n                    \u003cdiv class=\"dutch__output-label\"\u003e이익\u003c/div\u003e\n                    \u003cdiv class=\"dutch__output-value dutch__profit-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"dutch__output-item\"\u003e\n                    \u003cdiv class=\"dutch__output-label\"\u003e묵시적 확률\u003c/div\u003e\n                    \u003cdiv class=\"dutch__output-value dutch__probability-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"dutch__info\"\u003e\n                더칭은 어떤 선택이 이기든 동일한 이익을 보장하도록 판돈을 분배합니다. 최소 2개의 선택을 입력하세요.\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cbutton class=\"dutch__reset\" type=\"button\"\u003e초기화\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const oddsTypeSelect = container.querySelector('.dutch__odds-type');\n    const totalStakeInput = container.querySelector('.dutch__total-stake');\n    const selectionsList = container.querySelector('.dutch__selections-list');\n    const addBtn = container.querySelector('.dutch__add-btn');\n    const resetBtn = container.querySelector('.dutch__reset');\n\n    const returnValue = container.querySelector('.dutch__return-value');\n    const profitValue = container.querySelector('.dutch__profit-value');\n    const probabilityValue = container.querySelector('.dutch__probability-value');\n\n    let selectionCount = 0;\n\n    const placeholders = {\n        'Decimal': '2.50',\n        'Fractional': '3/2',\n        'American': '+150'\n    };\n\n    const hints = {\n        'Decimal': '소수점 배당률 입력 (예: 2.50, 3.00)',\n        'Fractional': '분수 배당률 입력 (예: 3\\/2, 5\\/1)',\n        'American': '미국식 배당률 입력 (예: \\u002b150, -110)'\n    };\n\n    \n    function validateFractionalCoefficient(coefficient) {\n        return /^\\d+\\/\\d+$/.test(coefficient);\n    }\n\n    function validateDecimalCoefficient(coefficient) {\n        return /^\\d+(\\.\\d+)?$/.test(coefficient) \u0026\u0026 parseFloat(coefficient) \u003e 1;\n    }\n\n    function validateAmericanCoefficient(coefficient) {\n        return /^[-+]?\\d+$/.test(coefficient);\n    }\n\n    \n    function convertFractionToDecimal(fraction) {\n        const parts = fraction.split('/');\n        if (parts.length !== 2) return null;\n        const numerator = parseFloat(parts[0]);\n        const denominator = parseFloat(parts[1]);\n        if (isNaN(numerator) || isNaN(denominator) || denominator === 0) return null;\n        return (numerator / denominator) + 1;\n    }\n\n    function convertAmericanToDecimal(americanOdds) {\n        const oddsValue = parseFloat(americanOdds);\n        if (isNaN(oddsValue)) return null;\n        if (oddsValue \u003e 0) {\n            return (oddsValue / 100) + 1;\n        } else if (oddsValue \u003c 0) {\n            return (100 / Math.abs(oddsValue)) + 1;\n        }\n        return 2;\n    }\n\n    function getDecimalOdds(oddsString) {\n        const type = oddsTypeSelect.value;\n        const odds = oddsString.trim();\n\n        if (type === 'Fractional') {\n            if (!validateFractionalCoefficient(odds)) return null;\n            return convertFractionToDecimal(odds);\n        } else if (type === 'Decimal') {\n            if (!validateDecimalCoefficient(odds)) return null;\n            return parseFloat(odds);\n        } else if (type === 'American') {\n            if (!validateAmericanCoefficient(odds)) return null;\n            return convertAmericanToDecimal(odds);\n        }\n        return null;\n    }\n\n    function createSelectionRow() {\n        selectionCount++;\n        const row = document.createElement('div');\n        row.className = 'dutch__selection-row';\n        row.dataset.id = selectionCount;\n\n        const type = oddsTypeSelect.value;\n\n        row.innerHTML = `\n            \u003cdiv class=\"dutch__selection-num\"\u003e${selectionCount}\u003c/div\u003e\n            \u003cinput type=\"text\" class=\"dutch__selection-input dutch__odds-input\" placeholder=\"${placeholders[type]}\" title=\"${hints[type]}\" /\u003e\n            \u003cdiv class=\"dutch__selection-stake\"\u003e-\u003c/div\u003e\n            \u003cdiv class=\"dutch__selection-return\"\u003e-\u003c/div\u003e\n            \u003cdiv class=\"dutch__selection-prob\"\u003e-\u003c/div\u003e\n            \u003cbutton type=\"button\" class=\"dutch__remove-btn\"\u003e${'제거'}\u003c/button\u003e\n        `;\n\n        const oddsInput = row.querySelector('.dutch__odds-input');\n        const removeBtn = row.querySelector('.dutch__remove-btn');\n\n        oddsInput.addEventListener('input', calculate);\n        removeBtn.addEventListener('click', function() {\n            row.remove();\n            renumberSelections();\n            calculate();\n        });\n\n        return row;\n    }\n\n    function renumberSelections() {\n        const rows = selectionsList.querySelectorAll('.dutch__selection-row');\n        rows.forEach((row, index) =\u003e {\n            row.querySelector('.dutch__selection-num').textContent = index + 1;\n        });\n        selectionCount = rows.length;\n    }\n\n    function calculate() {\n        const totalStake = parseFloat(totalStakeInput.value);\n        const rows = selectionsList.querySelectorAll('.dutch__selection-row');\n\n        if (isNaN(totalStake) || totalStake \u003c= 0 || rows.length === 0) {\n            resetOutput();\n            return;\n        }\n\n        \n        const selections = [];\n\n        rows.forEach(row =\u003e {\n            const oddsInput = row.querySelector('.dutch__odds-input');\n            const decimalOdds = getDecimalOdds(oddsInput.value);\n\n            if (decimalOdds === null || decimalOdds \u003c= 1) {\n                if (oddsInput.value.trim() !== '') {\n                    oddsInput.classList.add('invalid');\n                } else {\n                    oddsInput.classList.remove('invalid');\n                }\n            } else {\n                oddsInput.classList.remove('invalid');\n                selections.push({\n                    row: row,\n                    odds: decimalOdds,\n                    impliedProb: 1 / decimalOdds\n                });\n            }\n        });\n\n        if (selections.length \u003c 2) {\n            resetOutput();\n            \n            rows.forEach(row =\u003e {\n                row.querySelector('.dutch__selection-stake').textContent = '-';\n                row.querySelector('.dutch__selection-return').textContent = '-';\n                row.querySelector('.dutch__selection-prob').textContent = '-';\n            });\n            return;\n        }\n\n        \n        const sumInverseOdds = selections.reduce((sum, sel) =\u003e sum + sel.impliedProb, 0);\n        const potentialReturn = totalStake / sumInverseOdds;\n\n        selections.forEach(sel =\u003e {\n            const stake = totalStake * sel.impliedProb / sumInverseOdds;\n            const returnAmount = stake * sel.odds;\n\n            sel.row.querySelector('.dutch__selection-stake').textContent = '$' + stake.toFixed(2);\n            sel.row.querySelector('.dutch__selection-return').textContent = '$' + returnAmount.toFixed(2);\n            sel.row.querySelector('.dutch__selection-prob').textContent = (sel.impliedProb * 100).toFixed(1) + '%';\n        });\n\n        \n        rows.forEach(row =\u003e {\n            if (!selections.find(s =\u003e s.row === row)) {\n                row.querySelector('.dutch__selection-stake').textContent = '-';\n                row.querySelector('.dutch__selection-return').textContent = '-';\n                row.querySelector('.dutch__selection-prob').textContent = '-';\n            }\n        });\n\n        const profit = potentialReturn - totalStake;\n        const combinedProbability = sumInverseOdds * 100;\n\n        returnValue.textContent = '$' + potentialReturn.toFixed(2);\n\n        profitValue.textContent = (profit \u003e= 0 ? '+$' : '-$') + Math.abs(profit).toFixed(2);\n        profitValue.className = 'dutch__output-value ' + (profit \u003e= 0 ? 'positive' : 'negative');\n\n        probabilityValue.textContent = combinedProbability.toFixed(1) + '%';\n        probabilityValue.className = 'dutch__output-value ' + (combinedProbability \u003c 100 ? 'positive' : (combinedProbability \u003e 100 ? 'negative' : 'warning'));\n    }\n\n    function resetOutput() {\n        returnValue.textContent = '-';\n        returnValue.className = 'dutch__output-value';\n        profitValue.textContent = '-';\n        profitValue.className = 'dutch__output-value';\n        probabilityValue.textContent = '-';\n        probabilityValue.className = 'dutch__output-value';\n    }\n\n    function resetAll() {\n        selectionsList.innerHTML = '';\n        selectionCount = 0;\n        totalStakeInput.value = '100';\n\n        \n        selectionsList.appendChild(createSelectionRow());\n        selectionsList.appendChild(createSelectionRow());\n\n        resetOutput();\n    }\n\n    \n    oddsTypeSelect.addEventListener('change', function() {\n        const type = this.value;\n\n        selectionsList.querySelectorAll('.dutch__odds-input').forEach(input =\u003e {\n            input.placeholder = placeholders[type];\n            input.title = hints[type];\n        });\n        calculate();\n    });\n\n    totalStakeInput.addEventListener('input', calculate);\n    addBtn.addEventListener('click', function() {\n        selectionsList.appendChild(createSelectionRow());\n    });\n    resetBtn.addEventListener('click', resetAll);\n\n    \n    selectionsList.appendChild(createSelectionRow());\n    selectionsList.appendChild(createSelectionRow());\n})();\n\u003c/script\u003e","title":"더칭 계산기 - 다중 결과 배팅"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 단위 스테이크 베팅 수 3 총 지분 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/round-robin-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"roundrobin_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e단위 스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e3\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2];\n    var root = document.getElementById('roundrobin_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"라운드 로빈 계산기 - 다중 팔레이 시스템"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 선택 4 단위 스테이크 베팅 수 15 총 지분 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/lucky-15-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"lucky15_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e단위 스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e15\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [1, 2, 3, 4];\n    var root = document.getElementById('lucky15_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"럭키 15 계산기 - 15개 배팅 시스템"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 선택 4 선택 5 단위 스테이크 베팅 수 31 총 지분 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/lucky-31-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"lucky31_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 5\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e단위 스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e31\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [1, 2, 3, 4, 5];\n    var root = document.getElementById('lucky31_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"럭키 31 계산기 - 31개 배팅 시스템"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 선택 4 선택 5 선택 6 단위 스테이크 베팅 수 63 총 지분 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/lucky-63-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"lucky63_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 5\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 6\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e단위 스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e63\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [1, 2, 3, 4, 5, 6];\n    var root = document.getElementById('lucky63_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"럭키 63 계산기 - 63개 배팅 시스템"},{"content":" 배당률 포맷 소수 분수 미국식 팀 A 확률 팀 B 확률 핸디캡(마진) 스테이크 지불금 (팀 A) - 지급(팀 B) - 묵시적인 문제 A - 내재된 문제 B - 북메이커 마진 - 재설정 ","permalink":"https://calculators-odds.com/ko/margin-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"margin_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e팀 A 확률\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-oddsa\" type=\"text\" placeholder=\"1.80\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e팀 B 확률\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-oddsb\" type=\"text\" placeholder=\"2.10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e핸디캡(마진)\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-handicap\" type=\"text\" placeholder=\"-1.5\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금 (팀 A)\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payouta\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지급(팀 B)\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payoutb\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e묵시적인 문제 A\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-proba\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e내재된 문제 B\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-probb\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e북메이커 마진\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-margin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('margin_0');\n    var formatEl = root.querySelector('.js-format');\n    var oddsAEl = root.querySelector('.js-oddsa');\n    var oddsBEl = root.querySelector('.js-oddsb');\n    var handicapEl = root.querySelector('.js-handicap');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutAEl = root.querySelector('.js-payouta');\n    var payoutBEl = root.querySelector('.js-payoutb');\n    var probAEl = root.querySelector('.js-proba');\n    var probBEl = root.querySelector('.js-probb');\n    var marginEl = root.querySelector('.js-margin');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var decA = convertToDecimal(oddsAEl.value.trim(), format);\n        var decB = convertToDecimal(oddsBEl.value.trim(), format);\n        var stake = parseFloat(stakeEl.value);\n\n        if (!decA) oddsAEl.classList.toggle('invalid', !!oddsAEl.value.trim());\n        else oddsAEl.classList.remove('invalid');\n        if (!decB) oddsBEl.classList.toggle('invalid', !!oddsBEl.value.trim());\n        else oddsBEl.classList.remove('invalid');\n\n        if (!decA || !decB) {\n            payoutAEl.textContent='-'; payoutBEl.textContent='-'; probAEl.textContent='-'; probBEl.textContent='-'; marginEl.textContent='-'; return;\n        }\n\n        var probA = (1 / decA) * 100;\n        var probB = (1 / decB) * 100;\n        var margin = (probA + probB) - 100;\n\n        probAEl.textContent = probA.toFixed(1) + '%';\n        probBEl.textContent = probB.toFixed(1) + '%';\n        marginEl.textContent = margin.toFixed(2) + '%';\n\n        if (stake \u0026\u0026 stake \u003e 0) {\n            payoutAEl.textContent = formatNumber(stake * decA);\n            payoutBEl.textContent = formatNumber(stake * decB);\n        } else {\n            payoutAEl.textContent = '-'; payoutBEl.textContent = '-';\n        }\n    }\n\n    formatEl.addEventListener('change', function() {\n        var ph = getOddsPlaceholder(formatEl.value);\n        oddsAEl.placeholder = ph; oddsBEl.placeholder = ph;\n        update();\n    });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        oddsAEl.value=''; oddsBEl.value=''; handicapEl.value=''; stakeEl.value='';\n        formatEl.selectedIndex=0; oddsAEl.classList.remove('invalid'); oddsBEl.classList.remove('invalid');\n        payoutAEl.textContent='-'; payoutBEl.textContent='-'; probAEl.textContent='-'; probBEl.textContent='-'; marginEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"마진 계산기 - 북메이커 수수료"},{"content":" 매치드 베팅 계산기 1단계: 베팅 유형 선택 자격 베팅(초기) 또는 무료 베팅(보너스) 중 선택 퀄리파잉 베팅 무료 베팅? Free Bet Type SNR(스테이크 미반환) 지분 반환 (SR) SNR = 이익만 반환, SR = 판돈 포함 전액 지불 2단계: 배당률 및 판돈 입력 백 확률 (북메이커) 북메이커의 소수 배당률 (예: 3.00) 레이 확률 (거래소) 거래소의 소수 배당률 (예: 3.10) 백 스테이크 북메이커에서 베팅할 금액 교환수수료(%) 거래소 수수료 (Betfair ~5%, Smarkets ~2%) 결과 스테이크를 놓으십시오 - 일반 책임 - 백이 승리할 경우 이익 - Lay가 승리하면 이익을 얻습니다. - 적격 손실 - 등급: - 매치드 베팅은 북메이커에서 백하고 거래소에서 레이하여 수익을 확보합니다. 오즈가 가까울수록 손실이 적고/수익이 높습니다. 초기화 ","permalink":"https://calculators-odds.com/ko/matched-betting-calculator/","summary":"\u003cstyle\u003e\n    .matched {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .matched__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .matched__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .matched__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .matched__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #2196F3;\n        color: #2196F3;\n    }\n\n    .matched__type-tabs {\n        display: flex;\n        gap: 10px;\n        margin-bottom: 15px;\n    }\n\n    .matched__type-tab {\n        flex: 1;\n        padding: 14px;\n        border: 2px solid #2196F3;\n        background: transparent;\n        color: #e8e8e8;\n        border-radius: 4px;\n        cursor: pointer;\n        font-size: 14px;\n        font-weight: bold;\n        transition: all 0.2s;\n    }\n\n    .matched__type-tab:hover {\n        background: rgba(33, 150, 243, 0.2);\n    }\n\n    .matched__type-tab.active {\n        background: #2196F3;\n        color: #fff;\n    }\n\n    .matched__type-hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        text-align: center;\n        margin-bottom: 10px;\n    }\n\n    .matched__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n        flex-wrap: wrap;\n    }\n\n    .matched__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .matched__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 140px;\n    }\n\n    .matched__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .matched__input, .matched__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .matched__input:focus, .matched__select:focus {\n        outline: none;\n        border-color: #2196F3;\n    }\n\n    .matched__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .matched__select {\n        cursor: pointer;\n    }\n\n    .matched__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .matched__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .matched__free-bet-options {\n        display: none;\n        margin-top: 15px;\n        padding-top: 15px;\n        border-top: 1px solid rgba(255,255,255,0.1);\n    }\n\n    .matched__free-bet-options.active {\n        display: block;\n    }\n\n    .matched__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .matched__output-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .matched__output-item {\n        text-align: center;\n        padding: 15px;\n        background: rgba(255, 255, 255, 0.05);\n        border-radius: 6px;\n    }\n\n    .matched__output-item.highlight {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n    }\n\n    .matched__output-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .matched__output-value {\n        font-size: 20px;\n        font-weight: bold;\n    }\n\n    .matched__output-value.positive {\n        color: #4CAF50;\n    }\n\n    .matched__output-value.negative {\n        color: #f44336;\n    }\n\n    .matched__profit-box {\n        margin-top: 15px;\n        padding: 20px;\n        border-radius: 8px;\n        text-align: center;\n    }\n\n    .matched__profit-box.qualifying {\n        background: rgba(255, 152, 0, 0.15);\n        border: 2px solid #ff9800;\n    }\n\n    .matched__profit-box.freebet {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n    }\n\n    .matched__profit-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .matched__profit-value {\n        font-size: 28px;\n        font-weight: bold;\n    }\n\n    .matched__profit-box.qualifying .matched__profit-value {\n        color: #ff9800;\n    }\n\n    .matched__profit-box.freebet .matched__profit-value {\n        color: #4CAF50;\n    }\n\n    .matched__rating {\n        margin-top: 15px;\n        padding: 10px;\n        background: rgba(255, 255, 255, 0.05);\n        border-radius: 4px;\n        font-size: 14px;\n        text-align: center;\n    }\n\n    .matched__rating-value {\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .matched__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .matched__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n        align-self: center;\n    }\n\n    .matched__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .matched__row {\n            flex-direction: column;\n        }\n        .matched__output-grid {\n            grid-template-columns: 1fr;\n        }\n        .matched__type-tabs {\n            flex-direction: column;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"matched\"\u003e\n    \u003cdiv class=\"matched__title\"\u003e매치드 베팅 계산기\u003c/div\u003e\n\n    \u003cdiv class=\"matched__container\"\u003e\n        \n        \u003cdiv class=\"matched__section\"\u003e\n            \u003cdiv class=\"matched__section-title\"\u003e1단계: 베팅 유형 선택\u003c/div\u003e\n            \u003cdiv class=\"matched__type-hint\"\u003e자격 베팅(초기) 또는 무료 베팅(보너스) 중 선택\u003c/div\u003e\n            \u003cdiv class=\"matched__type-tabs\"\u003e\n                \u003cbutton type=\"button\" class=\"matched__type-tab active\" data-type=\"qualifying\"\u003e퀄리파잉 베팅\u003c/button\u003e\n                \u003cbutton type=\"button\" class=\"matched__type-tab\" data-type=\"freebet\"\u003e무료 베팅?\u003c/button\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"matched__free-bet-options\"\u003e\n                \u003cdiv class=\"matched__row\"\u003e\n                    \u003cdiv class=\"matched__input-group\"\u003e\n                        \u003clabel class=\"matched__label\"\u003eFree Bet Type\u003c/label\u003e\n                        \u003cselect class=\"matched__select matched__freebet-type\"\u003e\n                            \u003coption value=\"snr\"\u003eSNR(스테이크 미반환)\u003c/option\u003e\n                            \u003coption value=\"sr\"\u003e지분 반환 (SR)\u003c/option\u003e\n                        \u003c/select\u003e\n                        \u003cspan class=\"matched__hint\"\u003eSNR = 이익만 반환, SR = 판돈 포함 전액 지불\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"matched__section\"\u003e\n            \u003cdiv class=\"matched__section-title\"\u003e2단계: 배당률 및 판돈 입력\u003c/div\u003e\n            \u003cdiv class=\"matched__row\"\u003e\n                \u003cdiv class=\"matched__input-group\"\u003e\n                    \u003clabel class=\"matched__label\"\u003e백 확률 (북메이커)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"matched__input matched__back-odds\" placeholder=\"3.00\" min=\"1.01\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"matched__hint\"\u003e북메이커의 소수 배당률 (예: 3.00)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"matched__input-group\"\u003e\n                    \u003clabel class=\"matched__label\"\u003e레이 확률 (거래소)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"matched__input matched__lay-odds\" placeholder=\"3.10\" min=\"1.01\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"matched__hint\"\u003e거래소의 소수 배당률 (예: 3.10)\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"matched__row\"\u003e\n                \u003cdiv class=\"matched__input-group\"\u003e\n                    \u003clabel class=\"matched__label\"\u003e백 스테이크\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"matched__input matched__back-stake\" placeholder=\"10.00\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"matched__hint\"\u003e북메이커에서 베팅할 금액\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"matched__input-group\"\u003e\n                    \u003clabel class=\"matched__label\"\u003e교환수수료(%)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"matched__input matched__commission\" placeholder=\"5\" value=\"5\" min=\"0\" max=\"100\" step=\"0.1\" /\u003e\n                    \u003cspan class=\"matched__hint\"\u003e거래소 수수료 (Betfair ~5%, Smarkets ~2%)\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"matched__section\"\u003e\n            \u003cdiv class=\"matched__output-title\"\u003e결과\u003c/div\u003e\n            \u003cdiv class=\"matched__output-grid\"\u003e\n                \u003cdiv class=\"matched__output-item highlight\"\u003e\n                    \u003cdiv class=\"matched__output-label\"\u003e스테이크를 놓으십시오\u003c/div\u003e\n                    \u003cdiv class=\"matched__output-value matched__lay-stake-result\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"matched__output-item\"\u003e\n                    \u003cdiv class=\"matched__output-label\"\u003e일반 책임\u003c/div\u003e\n                    \u003cdiv class=\"matched__output-value matched__liability-result\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"matched__output-item\"\u003e\n                    \u003cdiv class=\"matched__output-label\"\u003e백이 승리할 경우 이익\u003c/div\u003e\n                    \u003cdiv class=\"matched__output-value matched__profit-back\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"matched__output-item\"\u003e\n                    \u003cdiv class=\"matched__output-label\"\u003eLay가 승리하면 이익을 얻습니다.\u003c/div\u003e\n                    \u003cdiv class=\"matched__output-value matched__profit-lay\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"matched__profit-box qualifying\"\u003e\n                \u003cdiv class=\"matched__profit-label matched__main-label\"\u003e적격 손실\u003c/div\u003e\n                \u003cdiv class=\"matched__profit-value matched__main-result\"\u003e-\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"matched__rating\"\u003e\n                등급: \u003cspan class=\"matched__rating-value\"\u003e-\u003c/span\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"matched__info\"\u003e\n                매치드 베팅은 북메이커에서 백하고 거래소에서 레이하여 수익을 확보합니다. 오즈가 가까울수록 손실이 적고/수익이 높습니다.\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cbutton class=\"matched__reset\" type=\"button\"\u003e초기화\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const typeTabs = container.querySelectorAll('.matched__type-tab');\n    const freeBetOptions = container.querySelector('.matched__free-bet-options');\n    const freeBetTypeSelect = container.querySelector('.matched__freebet-type');\n\n    const backOddsInput = container.querySelector('.matched__back-odds');\n    const layOddsInput = container.querySelector('.matched__lay-odds');\n    const backStakeInput = container.querySelector('.matched__back-stake');\n    const commissionInput = container.querySelector('.matched__commission');\n\n    const layStakeResult = container.querySelector('.matched__lay-stake-result');\n    const liabilityResult = container.querySelector('.matched__liability-result');\n    const profitBackEl = container.querySelector('.matched__profit-back');\n    const profitLayEl = container.querySelector('.matched__profit-lay');\n    const profitBox = container.querySelector('.matched__profit-box');\n    const mainLabel = container.querySelector('.matched__main-label');\n    const mainResult = container.querySelector('.matched__main-result');\n    const ratingValue = container.querySelector('.matched__rating-value');\n\n    const resetBtn = container.querySelector('.matched__reset');\n\n    let betType = 'qualifying';\n\n    function calculate() {\n        const backOdds = parseFloat(backOddsInput.value);\n        const layOdds = parseFloat(layOddsInput.value);\n        const backStake = parseFloat(backStakeInput.value);\n        const commission = parseFloat(commissionInput.value) / 100;\n\n        \n        if (isNaN(backOdds) || backOdds \u003c= 1) {\n            if (backOddsInput.value.trim() !== '') {\n                backOddsInput.classList.add('invalid');\n            }\n            resetOutput();\n            return;\n        } else {\n            backOddsInput.classList.remove('invalid');\n        }\n\n        if (isNaN(layOdds) || layOdds \u003c= 1) {\n            if (layOddsInput.value.trim() !== '') {\n                layOddsInput.classList.add('invalid');\n            }\n            resetOutput();\n            return;\n        } else {\n            layOddsInput.classList.remove('invalid');\n        }\n\n        if (isNaN(backStake) || backStake \u003c= 0) {\n            resetOutput();\n            return;\n        }\n\n        const commissionRate = isNaN(commission) ? 0.05 : commission;\n\n        let layStake, liability, profitBack, profitLay, mainProfit, rating;\n\n        if (betType === 'qualifying') {\n            \n            layStake = (backStake * backOdds) / (layOdds - commissionRate);\n            liability = layStake * (layOdds - 1);\n\n            \n            profitBack = backStake * (backOdds - 1) - liability;\n\n            \n            profitLay = layStake * (1 - commissionRate) - backStake;\n\n            mainProfit = Math.min(profitBack, profitLay);\n            rating = ((Math.abs(mainProfit) / backStake) * 100).toFixed(2);\n\n            mainLabel.textContent = '적격 손실';\n            profitBox.classList.remove('freebet');\n            profitBox.classList.add('qualifying');\n        } else {\n            \n            const freeBetType = freeBetTypeSelect.value;\n\n            if (freeBetType === 'snr') {\n                \n                layStake = (backStake * (backOdds - 1)) / (layOdds - commissionRate);\n                liability = layStake * (layOdds - 1);\n\n                \n                profitBack = backStake * (backOdds - 1) - liability;\n\n                \n                profitLay = layStake * (1 - commissionRate);\n\n            } else {\n                \n                layStake = (backStake * backOdds) / (layOdds - commissionRate);\n                liability = layStake * (layOdds - 1);\n\n                profitBack = backStake * (backOdds - 1) - liability;\n                profitLay = layStake * (1 - commissionRate);\n            }\n\n            mainProfit = Math.min(profitBack, profitLay);\n            rating = ((mainProfit / backStake) * 100).toFixed(2);\n\n            mainLabel.textContent = 'Guaranteed Profit';\n            profitBox.classList.remove('qualifying');\n            profitBox.classList.add('freebet');\n        }\n\n        \n        layStakeResult.textContent = '$' + layStake.toFixed(2);\n        liabilityResult.textContent = '$' + liability.toFixed(2);\n\n        profitBackEl.textContent = (profitBack \u003e= 0 ? '+$' : '-$') + Math.abs(profitBack).toFixed(2);\n        profitBackEl.className = 'matched__output-value ' + (profitBack \u003e= 0 ? 'positive' : 'negative');\n\n        profitLayEl.textContent = (profitLay \u003e= 0 ? '+$' : '-$') + Math.abs(profitLay).toFixed(2);\n        profitLayEl.className = 'matched__output-value ' + (profitLay \u003e= 0 ? 'positive' : 'negative');\n\n        mainResult.textContent = (mainProfit \u003e= 0 ? '+$' : '-$') + Math.abs(mainProfit).toFixed(2);\n        ratingValue.textContent = rating + '%';\n    }\n\n    function resetOutput() {\n        layStakeResult.textContent = '-';\n        liabilityResult.textContent = '-';\n        profitBackEl.textContent = '-';\n        profitBackEl.className = 'matched__output-value';\n        profitLayEl.textContent = '-';\n        profitLayEl.className = 'matched__output-value';\n        mainResult.textContent = '-';\n        ratingValue.textContent = '-';\n    }\n\n    function resetAll() {\n        backOddsInput.value = '';\n        layOddsInput.value = '';\n        backStakeInput.value = '';\n        commissionInput.value = '5';\n        backOddsInput.classList.remove('invalid');\n        layOddsInput.classList.remove('invalid');\n\n        typeTabs.forEach(tab =\u003e tab.classList.remove('active'));\n        typeTabs[0].classList.add('active');\n        betType = 'qualifying';\n        freeBetOptions.classList.remove('active');\n\n        mainLabel.textContent = '적격 손실';\n        profitBox.classList.remove('freebet');\n        profitBox.classList.add('qualifying');\n\n        resetOutput();\n    }\n\n    \n    typeTabs.forEach(tab =\u003e {\n        tab.addEventListener('click', function() {\n            typeTabs.forEach(t =\u003e t.classList.remove('active'));\n            this.classList.add('active');\n            betType = this.dataset.type;\n\n            if (betType === 'freebet') {\n                freeBetOptions.classList.add('active');\n            } else {\n                freeBetOptions.classList.remove('active');\n            }\n            calculate();\n        });\n    });\n\n    backOddsInput.addEventListener('input', calculate);\n    layOddsInput.addEventListener('input', calculate);\n    backStakeInput.addEventListener('input', calculate);\n    commissionInput.addEventListener('input', calculate);\n    freeBetTypeSelect.addEventListener('change', calculate);\n\n    resetBtn.addEventListener('click', resetAll);\n})();\n\u003c/script\u003e","title":"매치드 배팅 계산기 - 무위험 이익"},{"content":" 머니라인 확률 베팅 유형 위험 승리하려면 위험금액 당신은 위험을 감수 - 승리하려면 - 지불금 - 묵시적 확률 - 십진법 - 재설정 ","permalink":"https://calculators-odds.com/ko/moneyline-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"moneyline_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e머니라인 확률\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"-150\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e베팅 유형\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-bettype\"\u003e\n            \u003coption value=\"risk\"\u003e위험\u003c/option\u003e\n            \u003coption value=\"towin\"\u003e승리하려면\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label js-amountlabel\"\u003e위험금액\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-amount\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e당신은 위험을 감수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-risk\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e승리하려면\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-towin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e묵시적 확률\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-prob\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e십진법\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-decimal\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('moneyline_0');\n    var oddsEl = root.querySelector('.js-odds');\n    var betTypeEl = root.querySelector('.js-bettype');\n    var amountEl = root.querySelector('.js-amount');\n    var amountLabelEl = root.querySelector('.js-amountlabel');\n    var riskEl = root.querySelector('.js-risk');\n    var toWinEl = root.querySelector('.js-towin');\n    var payoutEl = root.querySelector('.js-payout');\n    var probEl = root.querySelector('.js-prob');\n    var decimalEl = root.querySelector('.js-decimal');\n    var resetBtn = root.querySelector('.js-reset');\n\n    betTypeEl.addEventListener('change', function() {\n        amountLabelEl.textContent = betTypeEl.value === 'risk' ? '위험금액' : '당첨 금액';\n        update();\n    });\n\n    function update() {\n        var ml = parseInt(oddsEl.value);\n        var amount = parseFloat(amountEl.value);\n        var betType = betTypeEl.value;\n\n        if (isNaN(ml) || ml === 0) {\n            oddsEl.classList.toggle('invalid', !!oddsEl.value.trim());\n            riskEl.textContent='-'; toWinEl.textContent='-'; payoutEl.textContent='-'; probEl.textContent='-'; decimalEl.textContent='-'; return;\n        }\n        oddsEl.classList.remove('invalid');\n\n        var dec;\n        if (ml \u003e 0) dec = (ml / 100) + 1;\n        else dec = (100 / Math.abs(ml)) + 1;\n\n        var prob;\n        if (ml \u003c 0) prob = Math.abs(ml) / (Math.abs(ml) + 100);\n        else prob = 100 / (ml + 100);\n\n        decimalEl.textContent = dec.toFixed(3);\n        probEl.textContent = (prob * 100).toFixed(1) + '%';\n\n        if (!amount || amount \u003c= 0) { riskEl.textContent='-'; toWinEl.textContent='-'; payoutEl.textContent='-'; return; }\n\n        var risk, toWin, payout;\n        if (betType === 'risk') {\n            risk = amount;\n            toWin = amount * (dec - 1);\n            payout = amount * dec;\n        } else {\n            toWin = amount;\n            risk = amount / (dec - 1);\n            payout = risk + toWin;\n        }\n\n        riskEl.textContent = formatNumber(risk);\n        toWinEl.textContent = formatNumber(toWin);\n        payoutEl.textContent = formatNumber(payout);\n    }\n\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        oddsEl.value=''; amountEl.value=''; betTypeEl.selectedIndex=0;\n        oddsEl.classList.remove('invalid');\n        riskEl.textContent='-'; toWinEl.textContent='-'; payoutEl.textContent='-'; probEl.textContent='-'; decimalEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"머니라인 계산기 - 미국식 배당률 수익"},{"content":" 소수 분수 미국식 묵시적 확률 - 재설정 ","permalink":"https://calculators-odds.com/ko/odds-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"converter_0\"\u003e\n    \u003cdiv class=\"calc-wrap__grid calc-wrap__grid--3\"\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e소수\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-decimal\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e분수\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-fractional\" type=\"text\" placeholder=\"3/2\" /\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e미국식\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-american\" type=\"text\" placeholder=\"+150\" /\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e묵시적 확률\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-probability\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const root = document.getElementById('converter_0');\n    const decEl = root.querySelector('.js-decimal');\n    const fracEl = root.querySelector('.js-fractional');\n    const amerEl = root.querySelector('.js-american');\n    const probEl = root.querySelector('.js-probability');\n    const resetBtn = root.querySelector('.js-reset');\n    let updating = false;\n\n    function fromDecimal(d, source) {\n        if (source !== decEl) decEl.value = d.toFixed(2);\n        if (source !== fracEl) fracEl.value = convertDecimalToFractional(d) || '-';\n        if (source !== amerEl) amerEl.value = convertDecimalToAmerican(d) || '-';\n        probEl.textContent = (100 / d).toFixed(2) + '%';\n    }\n\n    function clearOthers(source) {\n        if (source !== decEl) decEl.value = '';\n        if (source !== fracEl) fracEl.value = '';\n        if (source !== amerEl) amerEl.value = '';\n        probEl.textContent = '-';\n    }\n\n    decEl.addEventListener('input', function() {\n        if (updating) return; updating = true;\n        const v = decEl.value.trim();\n        if (!v) { clearOthers(decEl); updating = false; return; }\n        const d = parseFloat(v);\n        if (!isNaN(d) \u0026\u0026 d \u003e 1) {\n            decEl.classList.remove('invalid');\n            fromDecimal(d, decEl);\n        } else {\n            decEl.classList.add('invalid');\n            clearOthers(decEl);\n        }\n        updating = false;\n    });\n\n    fracEl.addEventListener('input', function() {\n        if (updating) return; updating = true;\n        const v = fracEl.value.trim();\n        if (!v) { clearOthers(fracEl); updating = false; return; }\n        if (validateFractionalCoefficient(v)) {\n            fracEl.classList.remove('invalid');\n            fromDecimal(convertFractionToDecimal(v), fracEl);\n        } else {\n            fracEl.classList.add('invalid');\n            clearOthers(fracEl);\n        }\n        updating = false;\n    });\n\n    amerEl.addEventListener('input', function() {\n        if (updating) return; updating = true;\n        const v = amerEl.value.trim();\n        if (!v) { clearOthers(amerEl); updating = false; return; }\n        if (validateAmericanCoefficient(v)) {\n            amerEl.classList.remove('invalid');\n            fromDecimal(convertAmericanToDecimal(v), amerEl);\n        } else {\n            amerEl.classList.add('invalid');\n            clearOthers(amerEl);\n        }\n        updating = false;\n    });\n\n    resetBtn.addEventListener('click', function() {\n        decEl.value = ''; fracEl.value = ''; amerEl.value = '';\n        [decEl, fracEl, amerEl].forEach(el =\u003e el.classList.remove('invalid'));\n        probEl.textContent = '-';\n    });\n})();\n\u003c/script\u003e","title":"배당률 변환기 - 소수점, 분수, 미국식"},{"content":" 배당률 포맷 소수 분수 미국식 확률 스테이크 지불금 - 이익 - 묵시적 확률 - 재설정 ","permalink":"https://calculators-odds.com/ko/betting-odds-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"bkcoeff_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__grid\"\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e확률\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e스테이크\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e묵시적 확률\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-probability\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const root = document.getElementById('bkcoeff_0');\n    const formatEl = root.querySelector('.js-format');\n    const oddsEl = root.querySelector('.js-odds');\n    const stakeEl = root.querySelector('.js-stake');\n    const payoutEl = root.querySelector('.js-payout');\n    const profitEl = root.querySelector('.js-profit');\n    const probEl = root.querySelector('.js-probability');\n    const resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        const format = formatEl.value;\n        const decimal = convertToDecimal(oddsEl.value.trim(), format);\n        const stake = parseFloat(stakeEl.value);\n\n        if (oddsEl.value.trim() \u0026\u0026 decimal === null) { oddsEl.classList.add('invalid'); }\n        else { oddsEl.classList.remove('invalid'); }\n\n        if (!decimal || !stake || stake \u003c= 0) {\n            payoutEl.textContent = '-';\n            profitEl.textContent = '-';\n            probEl.textContent = decimal ? (100 / decimal).toFixed(2) + '%' : '-';\n            return;\n        }\n\n        const payout = decimal * stake;\n        const profit = payout - stake;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(profit);\n        probEl.textContent = (100 / decimal).toFixed(2) + '%';\n    }\n\n    formatEl.addEventListener('change', function() {\n        oddsEl.placeholder = getOddsPlaceholder(formatEl.value);\n        update();\n    });\n    [oddsEl, stakeEl].forEach(el =\u003e el.addEventListener('input', update));\n\n    resetBtn.addEventListener('click', function() {\n        oddsEl.value = ''; stakeEl.value = '';\n        formatEl.selectedIndex = 0;\n        oddsEl.classList.remove('invalid');\n        payoutEl.textContent = '-'; profitEl.textContent = '-'; probEl.textContent = '-';\n    });\n})();\n\u003c/script\u003e","title":"배팅 배당률 계산기 - 지급금 및 이익"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 선택 4 선택 5 선택 6 선택 7 단위 스테이크 베팅 수 120 총 지분 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/super-heinz-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"superheinz_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 5\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 6\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 7\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e단위 스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e120\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2, 3, 4, 5, 6, 7];\n    var root = document.getElementById('superheinz_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"슈퍼 하인츠 계산기 - 120개 배팅 시스템"},{"content":" 포인트 스프레드 좋아하는 머니라인 - 약자 머니라인 - 가장 좋아하는 묵시적 프로브 - 약자 암시적 문제 - 머니라인 예상 스프레드 - 재설정 ","permalink":"https://calculators-odds.com/ko/spread-moneyline-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"spreadml_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e포인트 스프레드\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-spread\" type=\"text\" placeholder=\"-3.5\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e좋아하는 머니라인\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-favml\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e약자 머니라인\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-dogml\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e가장 좋아하는 묵시적 프로브\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-favprob\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e약자 암시적 문제\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-dogprob\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__separator\"\u003e\u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e머니라인\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-ml\" type=\"text\" placeholder=\"-150\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e예상 스프레드\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-estspr\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('spreadml_0');\n    var spreadEl = root.querySelector('.js-spread');\n    var favMlEl = root.querySelector('.js-favml');\n    var dogMlEl = root.querySelector('.js-dogml');\n    var favProbEl = root.querySelector('.js-favprob');\n    var dogProbEl = root.querySelector('.js-dogprob');\n    var mlEl = root.querySelector('.js-ml');\n    var estSprEl = root.querySelector('.js-estspr');\n    var resetBtn = root.querySelector('.js-reset');\n\n    \n    \n    function spreadToMoneyline(spread) {\n        var absSpread = Math.abs(spread);\n        \n        var prob = 0.5 + (absSpread * 0.03); \n        if (prob \u003e= 0.99) prob = 0.99;\n        var favML, dogML;\n        if (prob \u003e= 0.5) {\n            favML = Math.round(-100 * prob / (1 - prob));\n            dogML = Math.round(100 * (1 - prob) / prob);\n        } else {\n            favML = Math.round(100 * (1 - prob) / prob);\n            dogML = Math.round(-100 * prob / (1 - prob));\n        }\n        return { favML: favML, dogML: dogML \u003e 0 ? '+' + dogML : '' + dogML, favProb: prob, dogProb: 1 - prob, favMLstr: favML \u003c 0 ? '' + favML : '+' + favML };\n    }\n\n    function moneylineToSpread(ml) {\n        var prob;\n        if (ml \u003c 0) prob = Math.abs(ml) / (Math.abs(ml) + 100);\n        else prob = 100 / (ml + 100);\n        var spread = (prob - 0.5) / 0.03;\n        return spread;\n    }\n\n    function updateSpread() {\n        var spread = parseFloat(spreadEl.value);\n        if (isNaN(spread)) {\n            favMlEl.textContent='-'; dogMlEl.textContent='-'; favProbEl.textContent='-'; dogProbEl.textContent='-'; return;\n        }\n        var result = spreadToMoneyline(spread);\n        favMlEl.textContent = result.favMLstr;\n        dogMlEl.textContent = result.dogML;\n        favProbEl.textContent = (result.favProb * 100).toFixed(1) + '%';\n        dogProbEl.textContent = (result.dogProb * 100).toFixed(1) + '%';\n    }\n\n    function updateML() {\n        var ml = parseInt(mlEl.value);\n        if (isNaN(ml) || ml === 0) { estSprEl.textContent='-'; return; }\n        var spread = moneylineToSpread(ml);\n        var sign = spread \u003e= 0 ? '+' : '';\n        estSprEl.textContent = sign + spread.toFixed(1);\n    }\n\n    spreadEl.addEventListener('input', updateSpread);\n    mlEl.addEventListener('input', updateML);\n    resetBtn.addEventListener('click', function() {\n        spreadEl.value=''; mlEl.value='';\n        favMlEl.textContent='-'; dogMlEl.textContent='-'; favProbEl.textContent='-'; dogProbEl.textContent='-'; estSprEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"스프레드-머니라인 계산기 - 배당률 변환"},{"content":" 아시안 핸디캡 계산기 1단계: 배당률 형식 선택 십진법 홍콩 말레이 인도네시아 2단계: 베팅 세부사항 입력 배팅 금액 베팅하려는 금액 배당률 북메이커의 배당률 3단계: 핸디캡 선택 -2.5 -2.25 -2 -1.75 -1.5 -1.25 -1 -0.75 -0.5 -0.25 0 +0.25 +0.5 +0.75 +1 +1.25 +1.5 +1.75 +2 +2.25 +2.5 핸디캡 값을 선택하려면 클릭 설명을 보려면 핸디캡을 선택하세요. 결과 팀이 이기면 승리 예상 수익 — 이익 — 하프 승 시나리오 반승 예상 수익 — 이익 — 무승부일 경우 무효 예상 수익 — 이익 — 하프 패 시나리오 반패 예상 수익 — 이익 — 팀이 지면 패배 예상 수익 — 이익 — 초기화 ","permalink":"https://calculators-odds.com/ko/asian-handicap-calculator/","summary":"\u003cstyle\u003e\n.asian {\n    margin: 15px 0;\n    background-color: #1e2328;\n    border-radius: 8px;\n    padding: 20px;\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n    color: #e8e8e8;\n}\n\n.asian__title {\n    font-size: 22px;\n    font-weight: bold;\n    text-align: center;\n    margin-bottom: 25px;\n    color: #e8e8e8;\n}\n\n.asian__section {\n    background: #2d333b;\n    border-radius: 6px;\n    padding: 15px;\n    margin-bottom: 15px;\n}\n\n.asian__section-title {\n    font-size: 14px;\n    font-weight: 600;\n    color: #4CAF50;\n    margin-bottom: 15px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n.asian__format-selector {\n    display: flex;\n    gap: 8px;\n    flex-wrap: wrap;\n}\n\n.asian__format-btn {\n    flex: 1;\n    min-width: 80px;\n    padding: 10px 12px;\n    border: 2px solid #4CAF50;\n    background: transparent;\n    color: #e8e8e8;\n    cursor: pointer;\n    border-radius: 4px;\n    font-size: 13px;\n    font-weight: 500;\n    transition: all 0.2s;\n}\n\n.asian__format-btn:hover {\n    background: rgba(76, 175, 80, 0.2);\n}\n\n.asian__format-btn.active {\n    background: #4CAF50;\n    color: #fff;\n}\n\n.asian__row {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 15px;\n}\n\n.asian__input-group {\n    display: flex;\n    flex-direction: column;\n    gap: 5px;\n}\n\n.asian__label {\n    font-size: 13px;\n    color: rgba(232, 232, 232, 0.8);\n}\n\n.asian__input {\n    width: 100%;\n    padding: 12px;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: 4px;\n    font-size: 16px;\n    background: #2d333b;\n    color: #e8e8e8;\n    transition: border-color 0.2s;\n    box-sizing: border-box;\n}\n\n.asian__input:focus {\n    outline: none;\n    border-color: #4CAF50;\n}\n\n.asian__input::placeholder {\n    color: rgba(232, 232, 232, 0.4);\n}\n\n.asian__hint {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.5);\n    margin-top: 8px;\n}\n\n.asian__handicap-grid {\n    display: grid;\n    grid-template-columns: repeat(7, 1fr);\n    gap: 6px;\n}\n\n.asian__handicap-btn {\n    padding: 8px 4px;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    background: rgba(0, 0, 0, 0.2);\n    color: #e8e8e8;\n    cursor: pointer;\n    border-radius: 4px;\n    font-size: 12px;\n    font-weight: 500;\n    transition: all 0.2s;\n}\n\n.asian__handicap-btn:hover {\n    border-color: #2196F3;\n    background: rgba(33, 150, 243, 0.2);\n}\n\n.asian__handicap-btn.active {\n    background: #2196F3;\n    border-color: #2196F3;\n    color: #fff;\n}\n\n.asian__handicap-btn.positive {\n    border-color: rgba(76, 175, 80, 0.4);\n}\n\n.asian__handicap-btn.negative {\n    border-color: rgba(244, 67, 54, 0.4);\n}\n\n.asian__explanation {\n    margin-top: 15px;\n    padding: 12px;\n    background: rgba(33, 150, 243, 0.1);\n    border: 1px solid rgba(33, 150, 243, 0.3);\n    border-radius: 4px;\n    font-size: 13px;\n    line-height: 1.5;\n}\n\n.asian__scenarios {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n}\n\n.asian__scenario {\n    background: rgba(0, 0, 0, 0.2);\n    border-radius: 4px;\n    padding: 12px;\n    display: none;\n}\n\n.asian__scenario.visible {\n    display: block;\n}\n\n.asian__scenario-header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    margin-bottom: 8px;\n}\n\n.asian__scenario-title {\n    font-size: 13px;\n    font-weight: 600;\n    color: rgba(232, 232, 232, 0.9);\n}\n\n.asian__scenario-result {\n    font-size: 12px;\n    font-weight: 600;\n    padding: 4px 10px;\n    border-radius: 3px;\n}\n\n.asian__scenario-result.win {\n    background: rgba(76, 175, 80, 0.2);\n    color: #4CAF50;\n}\n\n.asian__scenario-result.lose {\n    background: rgba(244, 67, 54, 0.2);\n    color: #f44336;\n}\n\n.asian__scenario-result.half-win {\n    background: rgba(139, 195, 74, 0.2);\n    color: #8BC34A;\n}\n\n.asian__scenario-result.half-lose {\n    background: rgba(255, 152, 0, 0.2);\n    color: #ff9800;\n}\n\n.asian__scenario-result.push {\n    background: rgba(158, 158, 158, 0.2);\n    color: #9e9e9e;\n}\n\n.asian__scenario-values {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 10px;\n}\n\n.asian__scenario-item {\n    display: flex;\n    flex-direction: column;\n    gap: 2px;\n}\n\n.asian__scenario-label {\n    font-size: 10px;\n    color: rgba(232, 232, 232, 0.6);\n    text-transform: uppercase;\n}\n\n.asian__scenario-value {\n    font-size: 16px;\n    font-weight: 700;\n}\n\n.asian__scenario-value.positive {\n    color: #4CAF50;\n}\n\n.asian__scenario-value.negative {\n    color: #f44336;\n}\n\n.asian__scenario-value.neutral {\n    color: #9e9e9e;\n}\n\n.asian__buttons {\n    display: flex;\n    justify-content: center;\n    margin-top: 15px;\n}\n\n.asian__btn {\n    padding: 10px 30px;\n    border: none;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.2s;\n}\n\n.asian__btn--secondary {\n    background: #666;\n    color: #fff;\n}\n\n.asian__btn--secondary:hover {\n    background: #555;\n}\n\n@media (max-width: 600px) {\n    .asian__row {\n        grid-template-columns: 1fr;\n    }\n\n    .asian__handicap-grid {\n        grid-template-columns: repeat(5, 1fr);\n    }\n\n    .asian__format-btn {\n        min-width: 70px;\n        font-size: 12px;\n    }\n\n    .asian__scenario-values {\n        grid-template-columns: 1fr;\n    }\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"asian\"\u003e\n    \u003cdiv class=\"asian__title\"\u003e아시안 핸디캡 계산기\u003c/div\u003e\n\n    \u003cdiv class=\"asian__section\"\u003e\n        \u003cdiv class=\"asian__section-title\"\u003e1단계: 배당률 형식 선택\u003c/div\u003e\n        \u003cdiv class=\"asian__format-selector\"\u003e\n            \u003cbutton type=\"button\" class=\"asian__format-btn active\" data-type=\"decimal\"\u003e십진법\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__format-btn\" data-type=\"hongkong\"\u003e홍콩\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__format-btn\" data-type=\"malay\"\u003e말레이\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__format-btn\" data-type=\"indonesian\"\u003e인도네시아\u003c/button\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"asian__section\"\u003e\n        \u003cdiv class=\"asian__section-title\"\u003e2단계: 베팅 세부사항 입력\u003c/div\u003e\n        \u003cdiv class=\"asian__row\"\u003e\n            \u003cdiv class=\"asian__input-group\"\u003e\n                \u003clabel class=\"asian__label\"\u003e배팅 금액\u003c/label\u003e\n                \u003cinput type=\"text\" class=\"asian__input asian__stake\" placeholder=\"100\"\u003e\n                \u003cspan class=\"asian__hint\"\u003e베팅하려는 금액\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"asian__input-group\"\u003e\n                \u003clabel class=\"asian__label\"\u003e배당률\u003c/label\u003e\n                \u003cinput type=\"text\" class=\"asian__input asian__odds\" placeholder=\"1.90\"\u003e\n                \u003cspan class=\"asian__hint\"\u003e북메이커의 배당률\u003c/span\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"asian__section\"\u003e\n        \u003cdiv class=\"asian__section-title\"\u003e3단계: 핸디캡 선택\u003c/div\u003e\n        \u003cdiv class=\"asian__handicap-grid\"\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-2.5\"\u003e-2.5\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-2.25\"\u003e-2.25\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-2\"\u003e-2\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-1.75\"\u003e-1.75\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-1.5\"\u003e-1.5\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-1.25\"\u003e-1.25\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-1\"\u003e-1\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-0.75\"\u003e-0.75\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-0.5\"\u003e-0.5\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-0.25\"\u003e-0.25\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn active\" data-handicap=\"0\"\u003e0\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+0.25\"\u003e+0.25\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+0.5\"\u003e+0.5\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+0.75\"\u003e+0.75\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+1\"\u003e+1\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+1.25\"\u003e+1.25\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+1.5\"\u003e+1.5\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+1.75\"\u003e+1.75\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+2\"\u003e+2\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+2.25\"\u003e+2.25\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+2.5\"\u003e+2.5\u003c/button\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"asian__hint\"\u003e핸디캡 값을 선택하려면 클릭\u003c/div\u003e\n        \u003cdiv class=\"asian__explanation\" id=\"asianExplanation\"\u003e\n            설명을 보려면 핸디캡을 선택하세요.\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"asian__section\"\u003e\n        \u003cdiv class=\"asian__section-title\"\u003e결과\u003c/div\u003e\n        \u003cdiv class=\"asian__scenarios\"\u003e\n            \u003cdiv class=\"asian__scenario visible\" id=\"asianWin\"\u003e\n                \u003cdiv class=\"asian__scenario-header\"\u003e\n                    \u003cspan class=\"asian__scenario-title\" id=\"asianWinTitle\"\u003e팀이 이기면\u003c/span\u003e\n                    \u003cspan class=\"asian__scenario-result win\"\u003e승리\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"asian__scenario-values\"\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003e예상 수익\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value\" id=\"asianWinPayout\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003e이익\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value positive\" id=\"asianWinProfit\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"asian__scenario\" id=\"asianHalfWin\"\u003e\n                \u003cdiv class=\"asian__scenario-header\"\u003e\n                    \u003cspan class=\"asian__scenario-title\" id=\"asianHalfWinTitle\"\u003e하프 승 시나리오\u003c/span\u003e\n                    \u003cspan class=\"asian__scenario-result half-win\"\u003e반승\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"asian__scenario-values\"\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003e예상 수익\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value\" id=\"asianHalfWinPayout\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003e이익\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value positive\" id=\"asianHalfWinProfit\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"asian__scenario\" id=\"asianDraw\"\u003e\n                \u003cdiv class=\"asian__scenario-header\"\u003e\n                    \u003cspan class=\"asian__scenario-title\" id=\"asianDrawTitle\"\u003e무승부일 경우\u003c/span\u003e\n                    \u003cspan class=\"asian__scenario-result push\"\u003e무효\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"asian__scenario-values\"\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003e예상 수익\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value\" id=\"asianDrawPayout\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003e이익\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value neutral\" id=\"asianDrawProfit\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"asian__scenario\" id=\"asianHalfLose\"\u003e\n                \u003cdiv class=\"asian__scenario-header\"\u003e\n                    \u003cspan class=\"asian__scenario-title\" id=\"asianHalfLoseTitle\"\u003e하프 패 시나리오\u003c/span\u003e\n                    \u003cspan class=\"asian__scenario-result half-lose\"\u003e반패\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"asian__scenario-values\"\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003e예상 수익\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value\" id=\"asianHalfLosePayout\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003e이익\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value negative\" id=\"asianHalfLoseProfit\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"asian__scenario visible\" id=\"asianLose\"\u003e\n                \u003cdiv class=\"asian__scenario-header\"\u003e\n                    \u003cspan class=\"asian__scenario-title\" id=\"asianLoseTitle\"\u003e팀이 지면\u003c/span\u003e\n                    \u003cspan class=\"asian__scenario-result lose\"\u003e패배\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"asian__scenario-values\"\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003e예상 수익\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value\" id=\"asianLosePayout\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003e이익\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value negative\" id=\"asianLoseProfit\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"asian__buttons\"\u003e\n        \u003cbutton type=\"button\" class=\"asian__btn asian__btn--secondary\" id=\"asianReset\"\u003e초기화\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n    let currentOddsType = 'decimal';\n    let currentHandicap = 0;\n\n    function toDecimalOdds(value, type) {\n        const num = parseFloat(value);\n        if (isNaN(num)) return null;\n\n        switch(type) {\n            case 'decimal':\n                return num \u003e 1 ? num : null;\n            case 'hongkong':\n                return num + 1;\n            case 'malay':\n                return num \u003e= 0 ? num + 1 : 1 - (1 / num);\n            case 'indonesian':\n                return num \u003e= 0 ? num + 1 : 1 - (1 / num);\n            default:\n                return num;\n        }\n    }\n\n    function isQuarterHandicap(h) {\n        return h % 0.5 !== 0 \u0026\u0026 h % 0.25 === 0;\n    }\n\n    function isWholeHandicap(h) {\n        return h % 1 === 0;\n    }\n\n    function getExplanation(h) {\n        if (h === 0) {\n            return '0 (무승부 환불): 팀이 이겨야 합니다. 무승부 시 판돈이 환불됩니다. 팀이 지면 판돈을 잃습니다.';\n        }\n\n        if (isQuarterHandicap(h)) {\n            if (h \u003e 0) {\n                return `\u003cstrong\u003e${h \u003e 0 ? '+' : ''}${h} handicap:\u003c/strong\u003e Your bet is split between ${h - 0.25} and ${h + 0.25}. Your team starts with a ${h} goal advantage. Half-win or half-lose possible.`;\n            } else {\n                return `\u003cstrong\u003e${h} handicap:\u003c/strong\u003e Your bet is split between ${h - 0.25} and ${h + 0.25}. Your team must overcome a ${Math.abs(h)} goal deficit. Half-win or half-lose possible.`;\n            }\n        }\n\n        if (h % 1 === 0.5 || h % 1 === -0.5) {\n            if (h \u003e 0) {\n                return `\u003cstrong\u003e+${h} handicap:\u003c/strong\u003e Your team starts with a ${h} goal head start. No draws possible - clear win or lose result only.`;\n            } else {\n                return `\u003cstrong\u003e${h} handicap:\u003c/strong\u003e Your team must win by more than ${Math.abs(h)} goals. No draws possible - clear win or lose.`;\n            }\n        }\n\n        if (isWholeHandicap(h)) {\n            if (h \u003e 0) {\n                return `\u003cstrong\u003e+${h} handicap:\u003c/strong\u003e Your team starts with ${h} goal(s) advantage. If the adjusted result is a draw, stake is returned (push).`;\n            } else {\n                return `\u003cstrong\u003e${h} handicap:\u003c/strong\u003e Your team must win by more than ${Math.abs(h)} goal(s). Exact match returns stake (push).`;\n            }\n        }\n\n        return \"Select a handicap to see explanation.\";\n    }\n\n    function calculate() {\n        const stake = parseFloat(container.querySelector('.asian__stake').value) || 0;\n        const oddsInput = container.querySelector('.asian__odds').value;\n        const decimalOdds = toDecimalOdds(oddsInput, currentOddsType);\n        const h = parseFloat(currentHandicap);\n\n        container.querySelector('#asianExplanation').innerHTML = getExplanation(h);\n\n        const isQuarter = isQuarterHandicap(h);\n        const isWhole = isWholeHandicap(h);\n        const isHalf = h % 1 === 0.5 || h % 1 === -0.5;\n\n        \n        container.querySelector('#asianWin').classList.add('visible');\n        container.querySelector('#asianLose').classList.add('visible');\n        container.querySelector('#asianDraw').classList.toggle('visible', isWhole || h === 0);\n        container.querySelector('#asianHalfWin').classList.toggle('visible', isQuarter);\n        container.querySelector('#asianHalfLose').classList.toggle('visible', isQuarter);\n\n        \n        if (h === 0) {\n            container.querySelector('#asianWinTitle').textContent = '팀이 이기면';\n            container.querySelector('#asianDrawTitle').textContent = '무승부일 경우';\n            container.querySelector('#asianLoseTitle').textContent = '팀이 지면';\n        } else if (h \u003e 0) {\n            container.querySelector('#asianWinTitle').textContent = `Your Team can lose by less than ${Math.abs(h)}`;\n            if (isWhole) container.querySelector('#asianDrawTitle').textContent = `If Your Team loses by exactly ${Math.abs(h)}`;\n            container.querySelector('#asianLoseTitle').textContent = `If Your Team loses by more than ${Math.abs(h)}`;\n        } else {\n            container.querySelector('#asianWinTitle').textContent = `If Your Team wins by more than ${Math.abs(h)}`;\n            if (isWhole) container.querySelector('#asianDrawTitle').textContent = `If Your Team wins by exactly ${Math.abs(h)}`;\n            container.querySelector('#asianLoseTitle').textContent = `Your Team wins by less than ${Math.abs(h)} or loses`;\n        }\n\n        if (isQuarter) {\n            if (h \u003e 0) {\n                container.querySelector('#asianHalfWinTitle').textContent = `If Your Team loses by ${Math.floor(Math.abs(h))}`;\n                container.querySelector('#asianHalfLoseTitle').textContent = `If Your Team loses by ${Math.ceil(Math.abs(h))}`;\n            } else {\n                container.querySelector('#asianHalfWinTitle').textContent = `If Your Team wins by ${Math.ceil(Math.abs(h))}`;\n                container.querySelector('#asianHalfLoseTitle').textContent = `If Your Team wins by ${Math.floor(Math.abs(h))}`;\n            }\n        }\n\n        if (!decimalOdds || stake \u003c= 0) {\n            ['Win', 'Draw', 'HalfWin', 'HalfLose', 'Lose'].forEach(type =\u003e {\n                container.querySelector(`#asian${type}Payout`).textContent = '—';\n                container.querySelector(`#asian${type}Profit`).textContent = '—';\n            });\n            return;\n        }\n\n        const profit = stake * (decimalOdds - 1);\n\n        \n        container.querySelector('#asianWinPayout').textContent = '$' + (stake + profit).toFixed(2);\n        container.querySelector('#asianWinProfit').textContent = '+$' + profit.toFixed(2);\n\n        \n        container.querySelector('#asianLosePayout').textContent = '$0.00';\n        container.querySelector('#asianLoseProfit').textContent = '-$' + stake.toFixed(2);\n\n        \n        if (isWhole || h === 0) {\n            container.querySelector('#asianDrawPayout').textContent = '$' + stake.toFixed(2);\n            container.querySelector('#asianDrawProfit').textContent = '$0.00';\n        }\n\n        \n        if (isQuarter) {\n            const halfProfit = profit / 2;\n            const halfLoss = stake / 2;\n\n            container.querySelector('#asianHalfWinPayout').textContent = '$' + (stake + halfProfit).toFixed(2);\n            container.querySelector('#asianHalfWinProfit').textContent = '+$' + halfProfit.toFixed(2);\n\n            container.querySelector('#asianHalfLosePayout').textContent = '$' + (stake - halfLoss).toFixed(2);\n            container.querySelector('#asianHalfLoseProfit').textContent = '-$' + halfLoss.toFixed(2);\n        }\n    }\n\n    function reset() {\n        container.querySelector('.asian__stake').value = '';\n        container.querySelector('.asian__odds').value = '';\n\n        container.querySelectorAll('.asian__handicap-btn').forEach(btn =\u003e {\n            btn.classList.remove('active');\n            if (btn.dataset.handicap === '0') btn.classList.add('active');\n        });\n        currentHandicap = 0;\n\n        calculate();\n    }\n\n    \n    container.querySelectorAll('.asian__format-btn').forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            container.querySelectorAll('.asian__format-btn').forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            currentOddsType = this.dataset.type;\n            calculate();\n        });\n    });\n\n    container.querySelectorAll('.asian__handicap-btn').forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            container.querySelectorAll('.asian__handicap-btn').forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            currentHandicap = this.dataset.handicap;\n            calculate();\n        });\n    });\n\n    container.querySelector('.asian__stake').addEventListener('input', calculate);\n    container.querySelector('.asian__odds').addEventListener('input', calculate);\n    container.querySelector('#asianReset').addEventListener('click', reset);\n\n    calculate();\n})();\n\u003c/script\u003e","title":"아시안 핸디캡 계산기 - AH 배팅 결과"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 선택 4 단위 스테이크 베팅 수 11 총 지분 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/yankee-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"yankee_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e단위 스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e11\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2, 3, 4];\n    var root = document.getElementById('yankee_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"양키 계산기 - 4개 선택 시스템 배팅"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 스테이크 총 지분 - 둘 다 승리 - Sel 1만 승리 - Sel 2만 승리 - 둘 다 패 - 재설정 ","permalink":"https://calculators-odds.com/ko/reverse-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"reverse_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds1\" type=\"text\" placeholder=\"2.50\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds2\" type=\"text\" placeholder=\"3.00\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e둘 다 승리\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-bothwin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eSel 1만 승리\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-sel1wins\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eSel 2만 승리\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-sel2wins\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e둘 다 패\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-bothlose\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('reverse_0');\n    var formatEl = root.querySelector('.js-format');\n    var odds1El = root.querySelector('.js-odds1');\n    var odds2El = root.querySelector('.js-odds2');\n    var stakeEl = root.querySelector('.js-stake');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var bothWinEl = root.querySelector('.js-bothwin');\n    var sel1WinsEl = root.querySelector('.js-sel1wins');\n    var sel2WinsEl = root.querySelector('.js-sel2wins');\n    var bothLoseEl = root.querySelector('.js-bothlose');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var d1 = convertToDecimal(odds1El.value.trim(), format);\n        var d2 = convertToDecimal(odds2El.value.trim(), format);\n        var stake = parseFloat(stakeEl.value);\n\n        if (!d1) odds1El.classList.toggle('invalid', !!odds1El.value.trim());\n        else odds1El.classList.remove('invalid');\n        if (!d2) odds2El.classList.toggle('invalid', !!odds2El.value.trim());\n        else odds2El.classList.remove('invalid');\n\n        if (!d1 || !d2 || !stake || stake \u003c= 0) {\n            totalStakeEl.textContent='-'; bothWinEl.textContent='-'; sel1WinsEl.textContent='-'; sel2WinsEl.textContent='-'; bothLoseEl.textContent='-'; return;\n        }\n\n        \n        \n        \n        var totalStake = stake * 2;\n        totalStakeEl.textContent = formatNumber(totalStake);\n\n        \n        var payout1 = stake * d1; \n        var ifBet1 = payout1 * d2; \n        var payout2 = stake * d2;\n        var ifBet2 = payout2 * d1;\n        \n        var bothWinProfit = (stake * d1 * d2) + (stake * d2 * d1) - totalStake;\n        \n        \n        var win1Only = (stake * d1 - stake) + (0 - stake); \n        var win2Only = (0 - stake) + (stake * d2 - stake); \n        var bothWin = (stake * d1 - stake) + (stake * d2 - stake); \n        var bothLose = -totalStake;\n\n        bothWinEl.textContent = formatNumber(bothWin);\n        sel1WinsEl.textContent = formatNumber(win1Only);\n        sel2WinsEl.textContent = formatNumber(win2Only);\n        bothLoseEl.textContent = formatNumber(bothLose);\n    }\n\n    formatEl.addEventListener('change', function() {\n        odds1El.placeholder = getOddsPlaceholder(formatEl.value);\n        odds2El.placeholder = getOddsPlaceholder(formatEl.value);\n        update();\n    });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        odds1El.value=''; odds2El.value=''; stakeEl.value='';\n        formatEl.selectedIndex=0; odds1El.classList.remove('invalid'); odds2El.classList.remove('invalid');\n        totalStakeEl.textContent='-'; bothWinEl.textContent='-'; sel1WinsEl.textContent='-'; sel2WinsEl.textContent='-'; bothLoseEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"역방향 배팅 계산기 - If 배팅 및 리버스"},{"content":" 승리 확률 % 줄무늬 길이 베팅 수 연속승 확률 - 연패 가능성 - 예상 최장 - 재설정 ","permalink":"https://calculators-odds.com/ko/streak-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"streak_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e승리 확률\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-prob\" type=\"text\" placeholder=\"50\" /\u003e\n        \u003cspan class=\"calc-wrap__unit\"\u003e%\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e줄무늬 길이\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-length\" type=\"text\" placeholder=\"5\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e베팅 수\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-numbets\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e연속승 확률\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-winstreak\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e연패 가능성\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-losestreak\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e예상 최장\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-expected\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('streak_0');\n    var probEl = root.querySelector('.js-prob');\n    var lengthEl = root.querySelector('.js-length');\n    var numBetsEl = root.querySelector('.js-numbets');\n    var winStreakEl = root.querySelector('.js-winstreak');\n    var loseStreakEl = root.querySelector('.js-losestreak');\n    var expectedEl = root.querySelector('.js-expected');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var prob = parseFloat(probEl.value) / 100;\n        var length = parseInt(lengthEl.value);\n        var numBets = parseInt(numBetsEl.value);\n\n        if (isNaN(prob) || prob \u003c= 0 || prob \u003e= 1 || isNaN(length) || length \u003c 1 || isNaN(numBets) || numBets \u003c 1) {\n            winStreakEl.textContent = '-'; loseStreakEl.textContent = '-'; expectedEl.textContent = '-'; return;\n        }\n\n        \n        var winStreakProb = Math.pow(prob, length);\n        var loseStreakProb = Math.pow(1 - prob, length);\n\n        \n        var winAtLeastOnce = 1 - Math.pow(1 - winStreakProb, Math.max(1, numBets - length + 1));\n        var loseAtLeastOnce = 1 - Math.pow(1 - loseStreakProb, Math.max(1, numBets - length + 1));\n\n        \n        var expectedLongest = Math.log(numBets) / Math.log(1 / prob);\n\n        winStreakEl.textContent = (winAtLeastOnce * 100).toFixed(1) + '%';\n        loseStreakEl.textContent = (loseAtLeastOnce * 100).toFixed(1) + '%';\n        expectedEl.textContent = expectedLongest.toFixed(1) + ' bets';\n    }\n\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        probEl.value=''; lengthEl.value=''; numBetsEl.value='';\n        winStreakEl.textContent='-'; loseStreakEl.textContent='-'; expectedEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"연속 계산기 - 연승/연패 확률"},{"content":" 배당률 포맷 미국식 소수 분수 총 라인 확률 초과 확률 아래 스테이크 지불금 초과 - 지불금 중 - 과도하게 암시된 문제 - 언더 확률 - 북메이커 Vig - 재설정 ","permalink":"https://calculators-odds.com/ko/over-under-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"overunder_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e총 라인\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-line\" type=\"text\" placeholder=\"2.5\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e확률 초과\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-overodds\" type=\"text\" placeholder=\"-110\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e확률 아래\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-underodds\" type=\"text\" placeholder=\"-110\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금 초과\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-overpayout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금 중\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-underpayout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e과도하게 암시된 문제\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-overprob\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e언더 확률\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-underprob\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e북메이커 Vig\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-breakeven\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('overunder_0');\n    var formatEl = root.querySelector('.js-format');\n    var lineEl = root.querySelector('.js-line');\n    var overOddsEl = root.querySelector('.js-overodds');\n    var underOddsEl = root.querySelector('.js-underodds');\n    var stakeEl = root.querySelector('.js-stake');\n    var overPayoutEl = root.querySelector('.js-overpayout');\n    var underPayoutEl = root.querySelector('.js-underpayout');\n    var overProbEl = root.querySelector('.js-overprob');\n    var underProbEl = root.querySelector('.js-underprob');\n    var breakevenEl = root.querySelector('.js-breakeven');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var overDec = convertToDecimal(overOddsEl.value.trim(), format);\n        var underDec = convertToDecimal(underOddsEl.value.trim(), format);\n        var stake = parseFloat(stakeEl.value);\n\n        if (!overDec) overOddsEl.classList.toggle('invalid', !!overOddsEl.value.trim());\n        else overOddsEl.classList.remove('invalid');\n        if (!underDec) underOddsEl.classList.toggle('invalid', !!underOddsEl.value.trim());\n        else underOddsEl.classList.remove('invalid');\n\n        if (overDec) {\n            var overProb = (1 / overDec) * 100;\n            overProbEl.textContent = overProb.toFixed(1) + '%';\n            if (stake \u0026\u0026 stake \u003e 0) {\n                overPayoutEl.textContent = formatNumber(stake * overDec);\n            } else { overPayoutEl.textContent = '-'; }\n        } else { overProbEl.textContent = '-'; overPayoutEl.textContent = '-'; }\n\n        if (underDec) {\n            var underProb = (1 / underDec) * 100;\n            underProbEl.textContent = underProb.toFixed(1) + '%';\n            if (stake \u0026\u0026 stake \u003e 0) {\n                underPayoutEl.textContent = formatNumber(stake * underDec);\n            } else { underPayoutEl.textContent = '-'; }\n        } else { underProbEl.textContent = '-'; underPayoutEl.textContent = '-'; }\n\n        if (overDec \u0026\u0026 underDec) {\n            var margin = ((1/overDec + 1/underDec) - 1) * 100;\n            breakevenEl.textContent = margin.toFixed(2) + '% vig';\n        } else { breakevenEl.textContent = '-'; }\n    }\n\n    formatEl.addEventListener('change', function() {\n        var ph = getOddsPlaceholder(formatEl.value);\n        overOddsEl.placeholder = ph; underOddsEl.placeholder = ph;\n        update();\n    });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        lineEl.value=''; overOddsEl.value=''; underOddsEl.value=''; stakeEl.value='';\n        formatEl.selectedIndex=0; overOddsEl.classList.remove('invalid'); underOddsEl.classList.remove('invalid');\n        overPayoutEl.textContent='-'; underPayoutEl.textContent='-'; overProbEl.textContent='-'; underProbEl.textContent='-'; breakevenEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"오버/언더 계산기 - 총 골 배팅"},{"content":" 이치웨이 계산기 1단계: 베팅 세부사항 입력 배당률 포맷 분수 십진법 미국식 입력할 배당률 형식 승리 확률 분수: 10/1 | 소수: 11.00 | 미국식: \u0026#43;1000 부품별 지분(E/W) 부분당 금액 — 총 판돈 = 2× 이 값 2단계: 플레이스 조건 및 규칙 4 장소 조건 1/4 배당률 1/5 배당률 1/3 배당률 1/2 배당률 플레이스 베팅을 위한 승리 배당률의 분수 장소 수 2위까지 3위까지 4위까지 5위까지 6위까지 지불 플레이스 수 Rule 4 Deduction 아니오 예 불출주 공제 규칙 4 승리 0p 5p 10p 15p 20p 25p 30p 35p 40p 45p 50p 55p 60p 65p 70p 75p 규칙 4 플레이스 0p 5p 10p 15p 20p 25p 30p 35p 40p 45p 50p 55p 60p 65p 70p 75p 3단계: 결과 선택 승리 순위(승리 아님) 패배 결과 선택: 승리 = 둘 다 지불, 플레이스 = 플레이스만 지불, 패배 = 지불 없음 결과 총 배팅 금액 - 플레이스 배당률 - 승리 복귀 - 반납장소 - 총 수익 / 이익 - 이치웨이 베팅 = 승리 베팅 \u0026#43; 승리 배당률의 일부로 플레이스 베팅. 총 판돈은 2배가 됩니다. 초기화 ","permalink":"https://calculators-odds.com/ko/each-way-calculator/","summary":"\u003cstyle\u003e\n    .eachway {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .eachway__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .eachway__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .eachway__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .eachway__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .eachway__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n        flex-wrap: wrap;\n    }\n\n    .eachway__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .eachway__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 120px;\n    }\n\n    .eachway__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .eachway__input, .eachway__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .eachway__input:focus, .eachway__select:focus {\n        outline: none;\n        border-color: #4CAF50;\n    }\n\n    .eachway__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .eachway__select {\n        cursor: pointer;\n    }\n\n    .eachway__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .eachway__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .eachway__rule4-row {\n        display: flex;\n        align-items: flex-start;\n        gap: 15px;\n        flex-wrap: wrap;\n    }\n\n    .eachway__rule4-controls {\n        display: none;\n        gap: 15px;\n        flex: 1;\n    }\n\n    .eachway__rule4-controls.active {\n        display: flex;\n    }\n\n    .eachway__outcome-tabs {\n        display: flex;\n        gap: 8px;\n    }\n\n    .eachway__outcome-tab {\n        flex: 1;\n        padding: 14px;\n        border: 2px solid #4CAF50;\n        background: transparent;\n        color: #e8e8e8;\n        border-radius: 4px;\n        cursor: pointer;\n        font-size: 14px;\n        font-weight: bold;\n        transition: all 0.2s;\n    }\n\n    .eachway__outcome-tab:hover {\n        background: rgba(76, 175, 80, 0.2);\n    }\n\n    .eachway__outcome-tab.active {\n        background: #4CAF50;\n        color: #fff;\n    }\n\n    .eachway__outcome-tab.lose {\n        border-color: #f44336;\n    }\n\n    .eachway__outcome-tab.lose:hover {\n        background: rgba(244, 67, 54, 0.2);\n    }\n\n    .eachway__outcome-tab.lose.active {\n        background: #f44336;\n    }\n\n    .eachway__outcome-hint {\n        margin-top: 10px;\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        text-align: center;\n    }\n\n    .eachway__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .eachway__output-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .eachway__output-item {\n        text-align: center;\n        padding: 15px;\n        background: rgba(255, 255, 255, 0.05);\n        border-radius: 6px;\n    }\n\n    .eachway__output-item.full-width {\n        grid-column: span 2;\n    }\n\n    .eachway__output-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .eachway__output-value {\n        font-size: 20px;\n        font-weight: bold;\n    }\n\n    .eachway__output-value.positive {\n        color: #4CAF50;\n    }\n\n    .eachway__output-value.negative {\n        color: #f44336;\n    }\n\n    .eachway__profit-box {\n        margin-top: 15px;\n        padding: 20px;\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n        border-radius: 8px;\n        text-align: center;\n    }\n\n    .eachway__profit-box.loss {\n        background: rgba(244, 67, 54, 0.15);\n        border-color: #f44336;\n    }\n\n    .eachway__profit-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .eachway__profit-value {\n        font-size: 28px;\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .eachway__profit-box.loss .eachway__profit-value {\n        color: #f44336;\n    }\n\n    .eachway__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .eachway__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n        align-self: center;\n    }\n\n    .eachway__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .eachway__row {\n            flex-direction: column;\n        }\n        .eachway__output-grid {\n            grid-template-columns: 1fr;\n        }\n        .eachway__output-item.full-width {\n            grid-column: span 1;\n        }\n        .eachway__outcome-tabs {\n            flex-direction: column;\n        }\n        .eachway__rule4-controls {\n            flex-direction: column;\n            width: 100%;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"eachway\"\u003e\n    \u003cdiv class=\"eachway__title\"\u003e이치웨이 계산기\u003c/div\u003e\n\n    \u003cdiv class=\"eachway__container\"\u003e\n        \n        \u003cdiv class=\"eachway__section\"\u003e\n            \u003cdiv class=\"eachway__section-title\"\u003e1단계: 베팅 세부사항 입력\u003c/div\u003e\n            \u003cdiv class=\"eachway__row\"\u003e\n                \u003cdiv class=\"eachway__input-group\"\u003e\n                    \u003clabel class=\"eachway__label\"\u003e배당률 포맷\u003c/label\u003e\n                    \u003cselect class=\"eachway__select eachway__odds-type\"\u003e\n                        \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n                        \u003coption value=\"Decimal\"\u003e십진법\u003c/option\u003e\n                        \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"eachway__hint\"\u003e입력할 배당률 형식\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"eachway__input-group\"\u003e\n                    \u003clabel class=\"eachway__label\"\u003e승리 확률\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"eachway__input eachway__odds\" placeholder=\"10/1\" /\u003e\n                    \u003cspan class=\"eachway__hint eachway__odds-hint\"\u003e분수: 10/1 | 소수: 11.00 | 미국식: \u0026#43;1000\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"eachway__row\"\u003e\n                \u003cdiv class=\"eachway__input-group\"\u003e\n                    \u003clabel class=\"eachway__label\"\u003e부품별 지분(E/W)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"eachway__input eachway__stake\" placeholder=\"5.00\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"eachway__hint\"\u003e부분당 금액 — 총 판돈 = 2× 이 값\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"eachway__section\"\u003e\n            \u003cdiv class=\"eachway__section-title\"\u003e2단계: 플레이스 조건 및 규칙 4\u003c/div\u003e\n            \u003cdiv class=\"eachway__row\"\u003e\n                \u003cdiv class=\"eachway__input-group\"\u003e\n                    \u003clabel class=\"eachway__label\"\u003e장소 조건\u003c/label\u003e\n                    \u003cselect class=\"eachway__select eachway__place-terms\"\u003e\n                        \u003coption value=\"0.25\"\u003e1/4 배당률\u003c/option\u003e\n                        \u003coption value=\"0.2\"\u003e1/5 배당률\u003c/option\u003e\n                        \u003coption value=\"0.333\"\u003e1/3 배당률\u003c/option\u003e\n                        \u003coption value=\"0.5\"\u003e1/2 배당률\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"eachway__hint\"\u003e플레이스 베팅을 위한 승리 배당률의 분수\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"eachway__input-group\"\u003e\n                    \u003clabel class=\"eachway__label\"\u003e장소 수\u003c/label\u003e\n                    \u003cselect class=\"eachway__select eachway__places\"\u003e\n                        \u003coption value=\"2\"\u003e2위까지\u003c/option\u003e\n                        \u003coption value=\"3\" selected\u003e3위까지\u003c/option\u003e\n                        \u003coption value=\"4\"\u003e4위까지\u003c/option\u003e\n                        \u003coption value=\"5\"\u003e5위까지\u003c/option\u003e\n                        \u003coption value=\"6\"\u003e6위까지\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"eachway__hint\"\u003e지불 플레이스 수\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"eachway__row eachway__rule4-row\"\u003e\n                \u003cdiv class=\"eachway__input-group\" style=\"flex: 0 0 auto; min-width: 100px;\"\u003e\n                    \u003clabel class=\"eachway__label\"\u003eRule 4 Deduction\u003c/label\u003e\n                    \u003cselect class=\"eachway__select eachway__rule4-toggle\"\u003e\n                        \u003coption value=\"no\"\u003e아니오\u003c/option\u003e\n                        \u003coption value=\"yes\"\u003e예\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"eachway__hint\"\u003e불출주 공제\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"eachway__rule4-controls\"\u003e\n                    \u003cdiv class=\"eachway__input-group\"\u003e\n                        \u003clabel class=\"eachway__label\"\u003e규칙 4 승리\u003c/label\u003e\n                        \u003cselect class=\"eachway__select eachway__rule4-win\"\u003e\n                            \u003coption value=\"0\"\u003e0p\u003c/option\u003e\n                            \u003coption value=\"5\"\u003e5p\u003c/option\u003e\n                            \u003coption value=\"10\"\u003e10p\u003c/option\u003e\n                            \u003coption value=\"15\"\u003e15p\u003c/option\u003e\n                            \u003coption value=\"20\"\u003e20p\u003c/option\u003e\n                            \u003coption value=\"25\"\u003e25p\u003c/option\u003e\n                            \u003coption value=\"30\"\u003e30p\u003c/option\u003e\n                            \u003coption value=\"35\"\u003e35p\u003c/option\u003e\n                            \u003coption value=\"40\"\u003e40p\u003c/option\u003e\n                            \u003coption value=\"45\"\u003e45p\u003c/option\u003e\n                            \u003coption value=\"50\"\u003e50p\u003c/option\u003e\n                            \u003coption value=\"55\"\u003e55p\u003c/option\u003e\n                            \u003coption value=\"60\"\u003e60p\u003c/option\u003e\n                            \u003coption value=\"65\"\u003e65p\u003c/option\u003e\n                            \u003coption value=\"70\"\u003e70p\u003c/option\u003e\n                            \u003coption value=\"75\"\u003e75p\u003c/option\u003e\n                        \u003c/select\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"eachway__input-group\"\u003e\n                        \u003clabel class=\"eachway__label\"\u003e규칙 4 플레이스\u003c/label\u003e\n                        \u003cselect class=\"eachway__select eachway__rule4-place\"\u003e\n                            \u003coption value=\"0\"\u003e0p\u003c/option\u003e\n                            \u003coption value=\"5\"\u003e5p\u003c/option\u003e\n                            \u003coption value=\"10\"\u003e10p\u003c/option\u003e\n                            \u003coption value=\"15\"\u003e15p\u003c/option\u003e\n                            \u003coption value=\"20\"\u003e20p\u003c/option\u003e\n                            \u003coption value=\"25\"\u003e25p\u003c/option\u003e\n                            \u003coption value=\"30\"\u003e30p\u003c/option\u003e\n                            \u003coption value=\"35\"\u003e35p\u003c/option\u003e\n                            \u003coption value=\"40\"\u003e40p\u003c/option\u003e\n                            \u003coption value=\"45\"\u003e45p\u003c/option\u003e\n                            \u003coption value=\"50\"\u003e50p\u003c/option\u003e\n                            \u003coption value=\"55\"\u003e55p\u003c/option\u003e\n                            \u003coption value=\"60\"\u003e60p\u003c/option\u003e\n                            \u003coption value=\"65\"\u003e65p\u003c/option\u003e\n                            \u003coption value=\"70\"\u003e70p\u003c/option\u003e\n                            \u003coption value=\"75\"\u003e75p\u003c/option\u003e\n                        \u003c/select\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"eachway__section\"\u003e\n            \u003cdiv class=\"eachway__section-title\"\u003e3단계: 결과 선택\u003c/div\u003e\n            \u003cdiv class=\"eachway__outcome-tabs\"\u003e\n                \u003cbutton type=\"button\" class=\"eachway__outcome-tab active\" data-outcome=\"win\"\u003e승리\u003c/button\u003e\n                \u003cbutton type=\"button\" class=\"eachway__outcome-tab\" data-outcome=\"place\"\u003e순위(승리 아님)\u003c/button\u003e\n                \u003cbutton type=\"button\" class=\"eachway__outcome-tab lose\" data-outcome=\"lose\"\u003e패배\u003c/button\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"eachway__outcome-hint\"\u003e결과 선택: 승리 = 둘 다 지불, 플레이스 = 플레이스만 지불, 패배 = 지불 없음\u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"eachway__section\"\u003e\n            \u003cdiv class=\"eachway__output-title\"\u003e결과\u003c/div\u003e\n            \u003cdiv class=\"eachway__output-grid\"\u003e\n                \u003cdiv class=\"eachway__output-item\"\u003e\n                    \u003cdiv class=\"eachway__output-label\"\u003e총 배팅 금액\u003c/div\u003e\n                    \u003cdiv class=\"eachway__output-value eachway__total-stake\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"eachway__output-item\"\u003e\n                    \u003cdiv class=\"eachway__output-label\"\u003e플레이스 배당률\u003c/div\u003e\n                    \u003cdiv class=\"eachway__output-value eachway__place-odds\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"eachway__output-item\"\u003e\n                    \u003cdiv class=\"eachway__output-label\"\u003e승리 복귀\u003c/div\u003e\n                    \u003cdiv class=\"eachway__output-value eachway__win-return\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"eachway__output-item\"\u003e\n                    \u003cdiv class=\"eachway__output-label\"\u003e반납장소\u003c/div\u003e\n                    \u003cdiv class=\"eachway__output-value eachway__place-return\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"eachway__profit-box\"\u003e\n                \u003cdiv class=\"eachway__profit-label\"\u003e총 수익 / 이익\u003c/div\u003e\n                \u003cdiv class=\"eachway__profit-value\"\u003e-\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"eachway__info\"\u003e\n                이치웨이 베팅 = 승리 베팅 \u0026#43; 승리 배당률의 일부로 플레이스 베팅. 총 판돈은 2배가 됩니다.\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cbutton class=\"eachway__reset\" type=\"button\"\u003e초기화\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const oddsTypeSelect = container.querySelector('.eachway__odds-type');\n    const oddsInput = container.querySelector('.eachway__odds');\n    const oddsHint = container.querySelector('.eachway__odds-hint');\n    const stakeInput = container.querySelector('.eachway__stake');\n    const placeTermsSelect = container.querySelector('.eachway__place-terms');\n    const placesSelect = container.querySelector('.eachway__places');\n\n    const rule4Toggle = container.querySelector('.eachway__rule4-toggle');\n    const rule4Controls = container.querySelector('.eachway__rule4-controls');\n    const rule4WinSelect = container.querySelector('.eachway__rule4-win');\n    const rule4PlaceSelect = container.querySelector('.eachway__rule4-place');\n\n    const outcomeTabs = container.querySelectorAll('.eachway__outcome-tab');\n    const resetBtn = container.querySelector('.eachway__reset');\n\n    const totalStakeEl = container.querySelector('.eachway__total-stake');\n    const placeOddsEl = container.querySelector('.eachway__place-odds');\n    const winReturnEl = container.querySelector('.eachway__win-return');\n    const placeReturnEl = container.querySelector('.eachway__place-return');\n    const profitBox = container.querySelector('.eachway__profit-box');\n    const profitValue = container.querySelector('.eachway__profit-value');\n\n    let selectedOutcome = 'win';\n\n    const placeholders = {\n        'Fractional': '10/1',\n        'Decimal': '11.00',\n        'American': '+1000'\n    };\n\n    const hints = {\n        'Fractional': '분수 배당률 입력 (예: 10\\/1, 5\\/1, 3\\/1)',\n        'Decimal': '소수점 배당률 입력 (예: 11.00, 6.00, 4.00)',\n        'American': '미국식 배당률 입력 (예: \\u002b1000, \\u002b500, \\u002b300)'\n    };\n\n    \n    function validateFractionalCoefficient(coefficient) {\n        return /^\\d+\\/\\d+$/.test(coefficient);\n    }\n\n    function validateDecimalCoefficient(coefficient) {\n        return /^\\d+(\\.\\d+)?$/.test(coefficient) \u0026\u0026 parseFloat(coefficient) \u003e 1;\n    }\n\n    function validateAmericanCoefficient(coefficient) {\n        return /^[-+]?\\d+$/.test(coefficient);\n    }\n\n    \n    function convertFractionToDecimal(fraction) {\n        const parts = fraction.split('/');\n        if (parts.length !== 2) return null;\n        const numerator = parseFloat(parts[0]);\n        const denominator = parseFloat(parts[1]);\n        if (isNaN(numerator) || isNaN(denominator) || denominator === 0) return null;\n        return (numerator / denominator) + 1;\n    }\n\n    function convertAmericanToDecimal(americanOdds) {\n        const oddsValue = parseFloat(americanOdds);\n        if (isNaN(oddsValue)) return null;\n        if (oddsValue \u003e 0) {\n            return (oddsValue / 100) + 1;\n        } else if (oddsValue \u003c 0) {\n            return (100 / Math.abs(oddsValue)) + 1;\n        }\n        return 2;\n    }\n\n    function getDecimalOdds() {\n        const type = oddsTypeSelect.value;\n        const odds = oddsInput.value.trim();\n\n        if (type === 'Fractional') {\n            if (!validateFractionalCoefficient(odds)) return null;\n            return convertFractionToDecimal(odds);\n        } else if (type === 'Decimal') {\n            if (!validateDecimalCoefficient(odds)) return null;\n            return parseFloat(odds);\n        } else if (type === 'American') {\n            if (!validateAmericanCoefficient(odds)) return null;\n            return convertAmericanToDecimal(odds);\n        }\n        return null;\n    }\n\n    function calculate() {\n        const decimalOdds = getDecimalOdds();\n        const stake = parseFloat(stakeInput.value);\n        const placeFraction = parseFloat(placeTermsSelect.value);\n\n        \n        if (decimalOdds === null || decimalOdds \u003c= 1) {\n            if (oddsInput.value.trim() !== '') {\n                oddsInput.classList.add('invalid');\n            }\n            resetOutput();\n            return;\n        } else {\n            oddsInput.classList.remove('invalid');\n        }\n\n        \n        if (isNaN(stake) || stake \u003c= 0) {\n            resetOutput();\n            return;\n        }\n\n        const totalStake = stake * 2; \n        const placeDecimalOdds = 1 + (decimalOdds - 1) * placeFraction;\n\n        \n        const showRule4 = rule4Toggle.value === 'yes';\n        const rule4Win = showRule4 ? parseFloat(rule4WinSelect.value) / 100 : 0;\n        const rule4Place = showRule4 ? parseFloat(rule4PlaceSelect.value) / 100 : 0;\n\n        \n        let winReturn = 0;\n        let placeReturn = 0;\n\n        if (selectedOutcome === 'win') {\n            \n            const winProfit = (decimalOdds - 1) * stake * (1 - rule4Win);\n            winReturn = stake + winProfit;\n\n            const placeProfit = (placeDecimalOdds - 1) * stake * (1 - rule4Place);\n            placeReturn = stake + placeProfit;\n        } else if (selectedOutcome === 'place') {\n            \n            winReturn = 0; \n\n            const placeProfit = (placeDecimalOdds - 1) * stake * (1 - rule4Place);\n            placeReturn = stake + placeProfit;\n        } else {\n            \n            winReturn = 0;\n            placeReturn = 0;\n        }\n\n        const totalReturn = winReturn + placeReturn;\n        const profit = totalReturn - totalStake;\n\n        \n        totalStakeEl.textContent = '$' + totalStake.toFixed(2);\n        placeOddsEl.textContent = placeDecimalOdds.toFixed(2);\n        winReturnEl.textContent = '$' + winReturn.toFixed(2);\n        placeReturnEl.textContent = '$' + placeReturn.toFixed(2);\n\n        profitValue.textContent = '$' + totalReturn.toFixed(2) + ' / ' + (profit \u003e= 0 ? '+$' : '-$') + Math.abs(profit).toFixed(2);\n\n        if (profit \u003e= 0) {\n            profitBox.classList.remove('loss');\n        } else {\n            profitBox.classList.add('loss');\n        }\n    }\n\n    function resetOutput() {\n        totalStakeEl.textContent = '-';\n        placeOddsEl.textContent = '-';\n        winReturnEl.textContent = '-';\n        placeReturnEl.textContent = '-';\n        profitValue.textContent = '-';\n        profitBox.classList.remove('loss');\n    }\n\n    function resetAll() {\n        oddsInput.value = '';\n        stakeInput.value = '';\n        oddsInput.classList.remove('invalid');\n        oddsTypeSelect.selectedIndex = 0;\n        placeTermsSelect.selectedIndex = 0;\n        placesSelect.selectedIndex = 1;\n        rule4Toggle.selectedIndex = 0;\n        rule4WinSelect.selectedIndex = 0;\n        rule4PlaceSelect.selectedIndex = 0;\n        rule4Controls.classList.remove('active');\n\n        outcomeTabs.forEach(tab =\u003e tab.classList.remove('active'));\n        outcomeTabs[0].classList.add('active');\n        selectedOutcome = 'win';\n\n        updatePlaceholder();\n        resetOutput();\n    }\n\n    \n    function updatePlaceholder() {\n        const type = oddsTypeSelect.value;\n        oddsInput.placeholder = placeholders[type];\n        oddsHint.textContent = hints[type];\n    }\n\n    \n    oddsTypeSelect.addEventListener('change', function() {\n        updatePlaceholder();\n        calculate();\n    });\n\n    oddsInput.addEventListener('input', calculate);\n    stakeInput.addEventListener('input', calculate);\n    placeTermsSelect.addEventListener('change', calculate);\n    placesSelect.addEventListener('change', calculate);\n\n    rule4Toggle.addEventListener('change', function() {\n        if (this.value === 'yes') {\n            rule4Controls.classList.add('active');\n        } else {\n            rule4Controls.classList.remove('active');\n        }\n        calculate();\n    });\n\n    rule4WinSelect.addEventListener('change', calculate);\n    rule4PlaceSelect.addEventListener('change', calculate);\n\n    outcomeTabs.forEach(tab =\u003e {\n        tab.addEventListener('click', function() {\n            outcomeTabs.forEach(t =\u003e t.classList.remove('active'));\n            this.classList.add('active');\n            selectedOutcome = this.dataset.outcome;\n            calculate();\n        });\n    });\n\n    resetBtn.addEventListener('click', resetAll);\n\n    \n    updatePlaceholder();\n})();\n\u003c/script\u003e","title":"이치웨이 계산기 - 승리 및 입상"},{"content":" 배당률 포맷 소수 분수 미국식 총 지분 결과 1 - 결과 2 - + 결과 추가 − 제거 여백 - 지불금 - 이익 - ROI (투자 수익률) - 재설정 ","permalink":"https://calculators-odds.com/ko/arbitrage-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"arb_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e총 지분\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-totalstake\" type=\"text\" placeholder=\"1000\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections js-selections\"\u003e\n        \u003cdiv class=\"calc-wrap__row calc-wrap__sel-row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e결과 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n            \u003cspan class=\"calc-wrap__stake-out js-stake-out\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row calc-wrap__sel-row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e결과 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n            \u003cspan class=\"calc-wrap__stake-out js-stake-out\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row calc-wrap__row--actions\"\u003e\n        \u003cbutton class=\"calc-wrap__btn calc-wrap__btn--sm js-add\" type=\"button\"\u003e+ 결과 추가\u003c/button\u003e\n        \u003cbutton class=\"calc-wrap__btn calc-wrap__btn--sm calc-wrap__btn--outline js-remove\" type=\"button\"\u003e− 제거\u003c/button\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e여백\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-margin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eROI (투자 수익률)\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-roi\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('arb_0');\n    var formatEl = root.querySelector('.js-format');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var selectionsEl = root.querySelector('.js-selections');\n    var marginEl = root.querySelector('.js-margin');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var roiEl = root.querySelector('.js-roi');\n    var addBtn = root.querySelector('.js-add');\n    var removeBtn = root.querySelector('.js-remove');\n    var resetBtn = root.querySelector('.js-reset');\n    var outcomeLabel = '결과';\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var stakeOuts = root.querySelectorAll('.js-stake-out');\n        var totalStake = parseFloat(totalStakeEl.value);\n        var decimalOdds = [];\n        var invertedSum = 0;\n        var allValid = true;\n\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) { decimalOdds.push(d); invertedSum += 1/d; } else allValid = false; }\n        });\n\n        if (!allValid || decimalOdds.length \u003c 2) {\n            marginEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; roiEl.textContent = '-';\n            stakeOuts.forEach(function(s) { s.textContent = '-'; });\n            return;\n        }\n\n        var margin = (1 - invertedSum) * 100;\n        marginEl.textContent = margin.toFixed(2) + '%';\n        marginEl.style.color = margin \u003e 0 ? '#4CAF50' : '#f44336';\n\n        if (!totalStake || totalStake \u003c= 0) {\n            payoutEl.textContent = '-'; profitEl.textContent = '-'; roiEl.textContent = '-';\n            stakeOuts.forEach(function(s) { s.textContent = '-'; });\n            return;\n        }\n\n        var payout = totalStake / invertedSum;\n        var profit = payout - totalStake;\n        var roi = (profit / totalStake) * 100;\n\n        stakeOuts.forEach(function(s, i) {\n            var individualStake = (totalStake / invertedSum) * (1 / decimalOdds[i]);\n            s.textContent = formatNumber(individualStake);\n        });\n\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(profit);\n        roiEl.textContent = roi.toFixed(2) + '%';\n    }\n\n    addBtn.addEventListener('click', function() {\n        var count = root.querySelectorAll('.js-odds').length;\n        if (count \u003e= 10) return;\n        var row = document.createElement('div');\n        row.className = 'calc-wrap__row calc-wrap__sel-row';\n        row.innerHTML = '\u003clabel class=\"calc-wrap__label\"\u003e' + outcomeLabel + ' ' + (count+1) + '\u003c/label\u003e\u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"' + getOddsPlaceholder(formatEl.value) + '\" /\u003e\u003cspan class=\"calc-wrap__stake-out js-stake-out\"\u003e-\u003c/span\u003e';\n        selectionsEl.appendChild(row);\n    });\n\n    removeBtn.addEventListener('click', function() {\n        var rows = selectionsEl.querySelectorAll('.calc-wrap__sel-row');\n        if (rows.length \u003e 2) { rows[rows.length-1].remove(); update(); }\n    });\n\n    formatEl.addEventListener('change', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);});\n        update();\n    });\n    root.addEventListener('input', update);\n\n    resetBtn.addEventListener('click', function() {\n        var rows = selectionsEl.querySelectorAll('.calc-wrap__sel-row');\n        rows.forEach(function(r,i){ if(i\u003e=2)r.remove(); });\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        root.querySelectorAll('.js-stake-out').forEach(function(s){s.textContent='-';});\n        totalStakeEl.value=''; formatEl.selectedIndex=0;\n        marginEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-'; roiEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"차익거래 배팅 계산기 - 확정 이익"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 선택 4 선택 5 단위 스테이크 베팅 수 26 총 지분 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/canadian-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"canadian_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 5\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e단위 스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e26\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2, 3, 4, 5];\n    var root = document.getElementById('canadian_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"캐나디안 (슈퍼 양키) 계산기 - 26개 배팅"},{"content":" 켈리 기준 계산기 1단계: 베팅 세부사항 입력 배당률 포맷 십진법 분수 미국식 배당률 소수: 2.50 | 분수: 3/2 | 미국식: \u0026#43;150 승률(%) (%) 예상 승률 (1-99%) 자금 ($) 베팅에 사용 가능한 총 금액 2단계: 위험 수준 선택 풀 켈리 하프 켈리 쿼터 켈리 하프 또는 쿼터 켈리는 위험을 줄이지만 잠재적 수익도 줄입니다 결과 가장자리 — 켈리 % — 묵시적 확률 — 기대값 — 최적의 스테이크 — 초기화 켈리 공식: f* = (bp - q) / b | b = 배당률 - 1, p = 승률, q = 1 - p ","permalink":"https://calculators-odds.com/ko/kelly-criterion-calculator/","summary":"\u003cstyle\u003e\n    .kelly {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 12px;\n        padding: 25px;\n        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n    }\n\n    .kelly__title {\n        font-size: 24px;\n        font-weight: bold;\n        text-align: center;\n        margin-bottom: 25px;\n        color: #e8e8e8;\n    }\n\n    .kelly__section {\n        background: #2d333b;\n        border-radius: 8px;\n        padding: 20px;\n        margin-bottom: 20px;\n    }\n\n    .kelly__section-title {\n        font-size: 14px;\n        font-weight: 600;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n        color: #4CAF50;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 1px solid rgba(255,255,255,0.1);\n    }\n\n    .kelly__grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .kelly__field {\n        display: flex;\n        flex-direction: column;\n    }\n\n    .kelly__field--full {\n        grid-column: 1 / -1;\n    }\n\n    .kelly__label {\n        font-size: 13px;\n        font-weight: 500;\n        margin-bottom: 6px;\n        color: rgba(232, 232, 232, 0.9);\n    }\n\n    .kelly__input, .kelly__select {\n        background: #1e2328;\n        color: #e8e8e8;\n        padding: 12px 14px;\n        border: 2px solid rgba(255,255,255,0.1);\n        border-radius: 6px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s, box-shadow 0.2s;\n    }\n\n    .kelly__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .kelly__input:focus, .kelly__select:focus {\n        outline: none;\n        border-color: #4CAF50;\n        box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.2);\n    }\n\n    .kelly__select {\n        cursor: pointer;\n        appearance: none;\n        background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23e8e8e8' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E\");\n        background-repeat: no-repeat;\n        background-position: right 12px center;\n        padding-right: 36px;\n    }\n\n    .kelly__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .kelly__fraction-row {\n        display: flex;\n        gap: 10px;\n    }\n\n    .kelly__fraction-btn {\n        flex: 1;\n        padding: 12px 8px;\n        border: 2px solid rgba(255,255,255,0.2);\n        background: transparent;\n        color: #e8e8e8;\n        border-radius: 6px;\n        cursor: pointer;\n        font-size: 13px;\n        font-weight: 500;\n        transition: all 0.2s;\n    }\n\n    .kelly__fraction-btn:hover {\n        border-color: #4CAF50;\n        background: rgba(76, 175, 80, 0.1);\n    }\n\n    .kelly__fraction-btn.active {\n        background: #4CAF50;\n        border-color: #4CAF50;\n        color: #fff;\n    }\n\n    .kelly__results {\n        background: #2d333b;\n        border-radius: 8px;\n        padding: 20px;\n    }\n\n    .kelly__results-title {\n        font-size: 14px;\n        font-weight: 600;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n        color: #4CAF50;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 1px solid rgba(255,255,255,0.1);\n    }\n\n    .kelly__metrics {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 12px;\n        margin-bottom: 20px;\n    }\n\n    .kelly__metric {\n        background: #1e2328;\n        padding: 15px;\n        border-radius: 6px;\n        text-align: center;\n    }\n\n    .kelly__metric-label {\n        font-size: 11px;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n        color: rgba(232, 232, 232, 0.6);\n        margin-bottom: 6px;\n    }\n\n    .kelly__metric-value {\n        font-size: 20px;\n        font-weight: bold;\n        color: #e8e8e8;\n    }\n\n    .kelly__metric-value.positive {\n        color: #4CAF50;\n    }\n\n    .kelly__metric-value.negative {\n        color: #f44336;\n    }\n\n    .kelly__recommendation {\n        background: linear-gradient(135deg, rgba(76, 175, 80, 0.2), rgba(76, 175, 80, 0.1));\n        border: 2px solid #4CAF50;\n        border-radius: 8px;\n        padding: 20px;\n        text-align: center;\n    }\n\n    .kelly__recommendation.no-bet {\n        background: linear-gradient(135deg, rgba(244, 67, 54, 0.2), rgba(244, 67, 54, 0.1));\n        border-color: #f44336;\n    }\n\n    .kelly__recommendation-label {\n        font-size: 12px;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .kelly__recommendation-value {\n        font-size: 28px;\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .kelly__recommendation.no-bet .kelly__recommendation-value {\n        color: #f44336;\n        font-size: 18px;\n    }\n\n    .kelly__reset {\n        display: block;\n        width: 100%;\n        margin-top: 15px;\n        padding: 12px;\n        background: rgba(255,255,255,0.1);\n        color: #e8e8e8;\n        border: none;\n        border-radius: 6px;\n        font-size: 14px;\n        font-weight: 500;\n        cursor: pointer;\n        transition: background 0.2s;\n    }\n\n    .kelly__reset:hover {\n        background: rgba(255,255,255,0.15);\n    }\n\n    .kelly__formula {\n        margin-top: 15px;\n        padding: 12px;\n        background: rgba(255,255,255,0.05);\n        border-radius: 6px;\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        text-align: center;\n    }\n\n    .kelly__input.invalid {\n        border-color: #f44336 !important;\n        box-shadow: 0 0 0 3px rgba(244, 67, 54, 0.2);\n    }\n\n    @media (max-width: 500px) {\n        .kelly__grid {\n            grid-template-columns: 1fr;\n        }\n        .kelly__metrics {\n            grid-template-columns: 1fr;\n        }\n        .kelly__fraction-row {\n            flex-direction: column;\n        }\n        .kelly__recommendation-value {\n            font-size: 22px;\n        }\n    }\n\u003c/style\u003e\n\n\u003cdiv class=\"kelly\"\u003e\n    \u003cdiv class=\"kelly__title\"\u003e켈리 기준 계산기\u003c/div\u003e\n\n    \n    \u003cdiv class=\"kelly__section\"\u003e\n        \u003cdiv class=\"kelly__section-title\"\u003e1단계: 베팅 세부사항 입력\u003c/div\u003e\n        \u003cdiv class=\"kelly__grid\"\u003e\n            \u003cdiv class=\"kelly__field\"\u003e\n                \u003clabel class=\"kelly__label\"\u003e배당률 포맷\u003c/label\u003e\n                \u003cselect class=\"kelly__select kelly__odds-type\"\u003e\n                    \u003coption value=\"Decimal\"\u003e십진법\u003c/option\u003e\n                    \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n                    \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n                \u003c/select\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"kelly__field\"\u003e\n                \u003clabel class=\"kelly__label\"\u003e배당률\u003c/label\u003e\n                \u003cinput type=\"text\" class=\"kelly__input kelly__odds\" placeholder=\"2.50\"\u003e\n                \u003cspan class=\"kelly__hint\"\u003e소수: 2.50 | 분수: 3/2 | 미국식: \u0026#43;150\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"kelly__field\"\u003e\n                \u003clabel class=\"kelly__label\"\u003e승률(%) (%)\u003c/label\u003e\n                \u003cinput type=\"number\" class=\"kelly__input kelly__probability\" placeholder=\"55\" min=\"1\" max=\"99\" step=\"0.1\"\u003e\n                \u003cspan class=\"kelly__hint\"\u003e예상 승률 (1-99%)\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"kelly__field\"\u003e\n                \u003clabel class=\"kelly__label\"\u003e자금 ($)\u003c/label\u003e\n                \u003cinput type=\"number\" class=\"kelly__input kelly__bankroll\" placeholder=\"1000\" min=\"0\" step=\"1\"\u003e\n                \u003cspan class=\"kelly__hint\"\u003e베팅에 사용 가능한 총 금액\u003c/span\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \n    \u003cdiv class=\"kelly__section\"\u003e\n        \u003cdiv class=\"kelly__section-title\"\u003e2단계: 위험 수준 선택\u003c/div\u003e\n        \u003cdiv class=\"kelly__field kelly__field--full\"\u003e\n            \u003cdiv class=\"kelly__fraction-row\"\u003e\n                \u003cbutton type=\"button\" class=\"kelly__fraction-btn active\" data-fraction=\"1\"\u003e풀 켈리\u003c/button\u003e\n                \u003cbutton type=\"button\" class=\"kelly__fraction-btn\" data-fraction=\"0.5\"\u003e하프 켈리\u003c/button\u003e\n                \u003cbutton type=\"button\" class=\"kelly__fraction-btn\" data-fraction=\"0.25\"\u003e쿼터 켈리\u003c/button\u003e\n            \u003c/div\u003e\n            \u003cspan class=\"kelly__hint\" style=\"margin-top: 8px; display: block;\"\u003e하프 또는 쿼터 켈리는 위험을 줄이지만 잠재적 수익도 줄입니다\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \n    \u003cdiv class=\"kelly__results\"\u003e\n        \u003cdiv class=\"kelly__results-title\"\u003e결과\u003c/div\u003e\n\n        \u003cdiv class=\"kelly__metrics\"\u003e\n            \u003cdiv class=\"kelly__metric\"\u003e\n                \u003cdiv class=\"kelly__metric-label\"\u003e가장자리\u003c/div\u003e\n                \u003cdiv class=\"kelly__metric-value kelly__edge\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"kelly__metric\"\u003e\n                \u003cdiv class=\"kelly__metric-label\"\u003e켈리 %\u003c/div\u003e\n                \u003cdiv class=\"kelly__metric-value kelly__kelly-pct\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"kelly__metric\"\u003e\n                \u003cdiv class=\"kelly__metric-label\"\u003e묵시적 확률\u003c/div\u003e\n                \u003cdiv class=\"kelly__metric-value kelly__implied\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"kelly__metric\"\u003e\n                \u003cdiv class=\"kelly__metric-label\"\u003e기대값\u003c/div\u003e\n                \u003cdiv class=\"kelly__metric-value kelly__ev\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cdiv class=\"kelly__recommendation\"\u003e\n            \u003cdiv class=\"kelly__recommendation-label\"\u003e최적의 스테이크\u003c/div\u003e\n            \u003cdiv class=\"kelly__recommendation-value\"\u003e—\u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cbutton class=\"kelly__reset\" type=\"button\"\u003e초기화\u003c/button\u003e\n\n    \u003cdiv class=\"kelly__formula\"\u003e\n        켈리 공식: f* = (bp - q) / b | b = 배당률 - 1, p = 승률, q = 1 - p\n    \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const oddsTypeSelect = container.querySelector('.kelly__odds-type');\n    const oddsInput = container.querySelector('.kelly__odds');\n    const probabilityInput = container.querySelector('.kelly__probability');\n    const bankrollInput = container.querySelector('.kelly__bankroll');\n    const fractionBtns = container.querySelectorAll('.kelly__fraction-btn');\n    const resetBtn = container.querySelector('.kelly__reset');\n\n    const kellyPctEl = container.querySelector('.kelly__kelly-pct');\n    const edgeEl = container.querySelector('.kelly__edge');\n    const evEl = container.querySelector('.kelly__ev');\n    const impliedEl = container.querySelector('.kelly__implied');\n    const recommendationEl = container.querySelector('.kelly__recommendation');\n    const recommendationValueEl = container.querySelector('.kelly__recommendation-value');\n\n    let selectedFraction = 1;\n\n    const placeholders = {\n        Decimal: '2.50',\n        Fractional: '3/2',\n        American: '+150'\n    };\n\n    function validateFractional(value) {\n        return /^\\d+\\/\\d+$/.test(value);\n    }\n\n    function validateDecimal(value) {\n        return /^\\d+(\\.\\d+)?$/.test(value) \u0026\u0026 parseFloat(value) \u003e 1;\n    }\n\n    function validateAmerican(value) {\n        return /^[-+]?\\d+$/.test(value);\n    }\n\n    function toDecimal(value, type) {\n        if (type === 'Fractional') {\n            if (!validateFractional(value)) return null;\n            const parts = value.split('/');\n            return (parseFloat(parts[0]) / parseFloat(parts[1])) + 1;\n        } else if (type === 'Decimal') {\n            if (!validateDecimal(value)) return null;\n            return parseFloat(value);\n        } else if (type === 'American') {\n            if (!validateAmerican(value)) return null;\n            const odds = parseFloat(value);\n            return odds \u003e 0 ? (odds / 100) + 1 : (100 / Math.abs(odds)) + 1;\n        }\n        return null;\n    }\n\n    function calculate() {\n        const type = oddsTypeSelect.value;\n        const decimalOdds = toDecimal(oddsInput.value.trim(), type);\n        const winProb = parseFloat(probabilityInput.value) / 100;\n        const bankroll = parseFloat(bankrollInput.value);\n\n        \n        if (!decimalOdds || decimalOdds \u003c= 1) {\n            oddsInput.classList.toggle('invalid', oddsInput.value.trim() !== '');\n            resetOutput();\n            return;\n        }\n        oddsInput.classList.remove('invalid');\n\n        if (isNaN(winProb) || winProb \u003c= 0 || winProb \u003e= 1) {\n            probabilityInput.classList.toggle('invalid', probabilityInput.value.trim() !== '');\n            resetOutput();\n            return;\n        }\n        probabilityInput.classList.remove('invalid');\n\n        \n        const b = decimalOdds - 1;\n        const p = winProb;\n        const q = 1 - p;\n\n        const kellyPct = (b * p - q) / b;\n        const edge = (decimalOdds * p) - 1;\n        const impliedProb = 1 / decimalOdds;\n\n        \n        edgeEl.textContent = (edge * 100).toFixed(2) + '%';\n        edgeEl.className = 'kelly__metric-value ' + (edge \u003e 0 ? 'positive' : 'negative');\n\n        kellyPctEl.textContent = (kellyPct * 100).toFixed(2) + '%';\n        kellyPctEl.className = 'kelly__metric-value ' + (kellyPct \u003e 0 ? 'positive' : 'negative');\n\n        impliedEl.textContent = (impliedProb * 100).toFixed(2) + '%';\n\n        evEl.textContent = (edge \u003e 0 ? '+' : '') + edge.toFixed(4);\n        evEl.className = 'kelly__metric-value ' + (edge \u003e 0 ? 'positive' : 'negative');\n\n        \n        if (kellyPct \u003c= 0) {\n            recommendationEl.classList.add('no-bet');\n            recommendationValueEl.textContent = '베팅 없음(네거티브 에지)';\n        } else {\n            recommendationEl.classList.remove('no-bet');\n            const adjustedKelly = kellyPct * selectedFraction;\n\n            if (!isNaN(bankroll) \u0026\u0026 bankroll \u003e 0) {\n                const stake = bankroll * adjustedKelly;\n                recommendationValueEl.textContent = '$' + stake.toFixed(2) + ' (' + (adjustedKelly * 100).toFixed(1) + '%)';\n            } else {\n                recommendationValueEl.textContent = (adjustedKelly * 100).toFixed(2) + '% of bankroll';\n            }\n        }\n    }\n\n    function resetOutput() {\n        edgeEl.textContent = '—';\n        edgeEl.className = 'kelly__metric-value';\n        kellyPctEl.textContent = '—';\n        kellyPctEl.className = 'kelly__metric-value';\n        impliedEl.textContent = '—';\n        evEl.textContent = '—';\n        evEl.className = 'kelly__metric-value';\n        recommendationEl.classList.remove('no-bet');\n        recommendationValueEl.textContent = '—';\n    }\n\n    function resetAll() {\n        oddsInput.value = '';\n        probabilityInput.value = '';\n        bankrollInput.value = '';\n        oddsInput.classList.remove('invalid');\n        probabilityInput.classList.remove('invalid');\n\n        fractionBtns.forEach(btn =\u003e btn.classList.remove('active'));\n        fractionBtns[0].classList.add('active');\n        selectedFraction = 1;\n\n        resetOutput();\n    }\n\n    \n    oddsTypeSelect.addEventListener('change', function() {\n        oddsInput.placeholder = placeholders[this.value];\n        calculate();\n    });\n\n    oddsInput.addEventListener('input', calculate);\n    probabilityInput.addEventListener('input', calculate);\n    bankrollInput.addEventListener('input', calculate);\n\n    fractionBtns.forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            fractionBtns.forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            selectedFraction = parseFloat(this.dataset.fraction);\n            calculate();\n        });\n    });\n\n    resetBtn.addEventListener('click', resetAll);\n})();\n\u003c/script\u003e","title":"켈리 기준 계산기 - 최적 배팅 크기"},{"content":" 트라이캐스트 유형 스트레이트 트라이캐스트 조합 트라이캐스트 1위 확률 2위 확률 3위 확률 스테이크 베팅 수 1 총 지분 - 예상 배당금 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/tricast-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"tricast_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e트라이캐스트 유형\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-type\"\u003e\n            \u003coption value=\"straight\"\u003e스트레이트 트라이캐스트\u003c/option\u003e\n            \u003coption value=\"combination\"\u003e조합 트라이캐스트\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e1위 확률\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds1\" type=\"text\" placeholder=\"5.00\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e2위 확률\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds2\" type=\"text\" placeholder=\"8.00\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e3위 확률\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds3\" type=\"text\" placeholder=\"12.00\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"1\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-numbets\"\u003e1\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e예상 배당금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-dividend\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('tricast_0');\n    var typeEl = root.querySelector('.js-type');\n    var odds1El = root.querySelector('.js-odds1');\n    var odds2El = root.querySelector('.js-odds2');\n    var odds3El = root.querySelector('.js-odds3');\n    var stakeEl = root.querySelector('.js-stake');\n    var numBetsEl = root.querySelector('.js-numbets');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var dividendEl = root.querySelector('.js-dividend');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var o1 = parseFloat(odds1El.value);\n        var o2 = parseFloat(odds2El.value);\n        var o3 = parseFloat(odds3El.value);\n        var stake = parseFloat(stakeEl.value);\n        var isCombination = typeEl.value === 'combination';\n        var numBets = isCombination ? 6 : 1;\n        numBetsEl.textContent = numBets;\n\n        if (isNaN(o1) || isNaN(o2) || isNaN(o3) || o1 \u003c= 1 || o2 \u003c= 1 || o3 \u003c= 1) {\n            totalStakeEl.textContent = '-'; dividendEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return;\n        }\n        if (!stake || stake \u003c= 0) {\n            totalStakeEl.textContent = '-'; dividendEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return;\n        }\n\n        \n        var dividend = o1 * o2 * o3;\n        var totalStake = stake * numBets;\n        var payout = dividend * stake;\n\n        totalStakeEl.textContent = formatNumber(totalStake);\n        dividendEl.textContent = formatNumber(dividend);\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - totalStake);\n    }\n\n    typeEl.addEventListener('change', update);\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        odds1El.value=''; odds2El.value=''; odds3El.value=''; stakeEl.value='';\n        typeEl.selectedIndex=0; numBetsEl.textContent='1';\n        totalStakeEl.textContent='-'; dividendEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"트라이캐스트 계산기 - 1-2-3위 순서 배팅"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 스테이크 결합 확률 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/treble-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"treble_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e결합 확률\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-combined\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const root = document.getElementById('treble_0');\n    const formatEl = root.querySelector('.js-format');\n    const stakeEl = root.querySelector('.js-stake');\n    const combinedEl = root.querySelector('.js-combined');\n    const payoutEl = root.querySelector('.js-payout');\n    const profitEl = root.querySelector('.js-profit');\n    const resetBtn = root.querySelector('.js-reset');\n\n    function getOddsInputs() { return root.querySelectorAll('.js-odds'); }\n\n    function update() {\n        const format = formatEl.value;\n        const oddsInputs = getOddsInputs();\n        let combined = 1, allValid = true;\n\n        oddsInputs.forEach(function(input) {\n            const d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); }\n            if (d) combined *= d; else allValid = false;\n        });\n\n        const stake = parseFloat(stakeEl.value);\n        if (!allValid) { combinedEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n\n        combinedEl.textContent = combined.toFixed(2);\n        if (!stake || stake \u003c= 0) { payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n\n        const payout = combined * stake;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - stake);\n    }\n\n    formatEl.addEventListener('change', function() {\n        getOddsInputs().forEach(i =\u003e i.placeholder = getOddsPlaceholder(formatEl.value));\n        update();\n    });\n    root.addEventListener('input', update);\n\n    resetBtn.addEventListener('click', function() {\n        getOddsInputs().forEach(i =\u003e { i.value = ''; i.classList.remove('invalid'); });\n        stakeEl.value = ''; formatEl.selectedIndex = 0;\n        combinedEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-';\n    });\n})();\n\u003c/script\u003e","title":"트레블 계산기 - 3개 선택 수익"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 단위 스테이크 베팅 수 4 총 지분 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/trixie-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"trixie_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e단위 스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e4\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2, 3];\n    var root = document.getElementById('trixie_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"트릭시 계산기 - 3개 선택 시스템 배팅"},{"content":" 티저 포인트 6 6.5 7 10 13 다리 수 2 3 4 5 6 스테이크 티저 확률 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/teaser-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"teaser_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e티저 포인트\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-points\"\u003e\n            \u003coption value=\"6\"\u003e6\u003c/option\u003e\n            \u003coption value=\"6.5\"\u003e6.5\u003c/option\u003e\n            \u003coption value=\"7\"\u003e7\u003c/option\u003e\n            \u003coption value=\"10\"\u003e10\u003c/option\u003e\n            \u003coption value=\"13\"\u003e13\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e다리 수\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-legs\"\u003e\n            \u003coption value=\"2\"\u003e2\u003c/option\u003e\n            \u003coption value=\"3\"\u003e3\u003c/option\u003e\n            \u003coption value=\"4\"\u003e4\u003c/option\u003e\n            \u003coption value=\"5\"\u003e5\u003c/option\u003e\n            \u003coption value=\"6\"\u003e6\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e티저 확률\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-odds\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('teaser_0');\n    var pointsEl = root.querySelector('.js-points');\n    var legsEl = root.querySelector('.js-legs');\n    var stakeEl = root.querySelector('.js-stake');\n    var oddsEl = root.querySelector('.js-odds');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var resetBtn = root.querySelector('.js-reset');\n\n    \n    var TEASER_ODDS = {\n        '6':    { 2: -110, 3: +160, 4: +260, 5: +400, 6: +600 },\n        '6.5':  { 2: -120, 3: +140, 4: +240, 5: +360, 6: +500 },\n        '7':    { 2: -130, 3: +120, 4: +200, 5: +320, 6: +450 },\n        '10':   { 2: -200, 3: -110, 4: +120, 5: +180, 6: +250 },\n        '13':   { 2: -350, 3: -170, 4: -110, 5: +110, 6: +150 }\n    };\n\n    function americanToDecimal(a) {\n        if (a \u003e 0) return (a / 100) + 1;\n        return (100 / Math.abs(a)) + 1;\n    }\n\n    function formatAmerican(a) {\n        return a \u003e 0 ? '+' + a : '' + a;\n    }\n\n    function update() {\n        var pts = pointsEl.value;\n        var legs = parseInt(legsEl.value);\n        var stake = parseFloat(stakeEl.value);\n        var americanOdd = TEASER_ODDS[pts][legs];\n        oddsEl.textContent = formatAmerican(americanOdd);\n        if (!stake || stake \u003c= 0) { payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var dec = americanToDecimal(americanOdd);\n        var payout = stake * dec;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - stake);\n    }\n\n    pointsEl.addEventListener('change', update);\n    legsEl.addEventListener('change', update);\n    stakeEl.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        stakeEl.value=''; pointsEl.selectedIndex=0; legsEl.selectedIndex=0;\n        oddsEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n    update();\n})();\n\u003c/script\u003e","title":"티저 계산기 - 포인트 유리한 배팅"},{"content":" 파레이 계산기 1단계: 배당률 형식 선택 십진법 분수 미국식 2단계: 판돈 입력 배팅 금액 베팅하려는 금액 3단계: 팔레이 레그 추가 다리 1 승리 패배 무효 다리 2 승리 패배 무효 + 다리 추가 소수 배당률 입력 (예: 2.50) 결과 다리 수 2 결합 확률 — 묵시적 확률 — 예상 수익 — 이익 — 모든 다리가 승리해야합니다 초기화 ","permalink":"https://calculators-odds.com/ko/parlay-calculator/","summary":"\u003cstyle\u003e\n.parlay {\n    margin: 15px 0;\n    background-color: #1e2328;\n    border-radius: 8px;\n    padding: 20px;\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n    color: #e8e8e8;\n}\n\n.parlay__title {\n    font-size: 22px;\n    font-weight: bold;\n    text-align: center;\n    margin-bottom: 25px;\n    color: #e8e8e8;\n}\n\n.parlay__section {\n    background: #2d333b;\n    border-radius: 6px;\n    padding: 15px;\n    margin-bottom: 15px;\n}\n\n.parlay__section-title {\n    font-size: 14px;\n    font-weight: 600;\n    color: #4CAF50;\n    margin-bottom: 15px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n.parlay__format-selector {\n    display: flex;\n    gap: 8px;\n    flex-wrap: wrap;\n}\n\n.parlay__format-btn {\n    flex: 1;\n    min-width: 100px;\n    padding: 10px 15px;\n    border: 2px solid #4CAF50;\n    background: transparent;\n    color: #e8e8e8;\n    cursor: pointer;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    transition: all 0.2s;\n}\n\n.parlay__format-btn:hover {\n    background: rgba(76, 175, 80, 0.2);\n}\n\n.parlay__format-btn.active {\n    background: #4CAF50;\n    color: #fff;\n}\n\n.parlay__input-group {\n    display: flex;\n    flex-direction: column;\n    gap: 5px;\n}\n\n.parlay__label {\n    font-size: 13px;\n    color: rgba(232, 232, 232, 0.8);\n}\n\n.parlay__input {\n    width: 100%;\n    padding: 12px;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: 4px;\n    font-size: 16px;\n    background: #2d333b;\n    color: #e8e8e8;\n    transition: border-color 0.2s;\n}\n\n.parlay__input:focus {\n    outline: none;\n    border-color: #4CAF50;\n}\n\n.parlay__input::placeholder {\n    color: rgba(232, 232, 232, 0.4);\n}\n\n.parlay__hint {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.5);\n    margin-top: 8px;\n}\n\n.parlay__legs-list {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n}\n\n.parlay__leg {\n    display: grid;\n    grid-template-columns: 60px 1fr 100px 60px auto;\n    gap: 10px;\n    align-items: center;\n    padding: 12px;\n    background: rgba(0, 0, 0, 0.2);\n    border-radius: 4px;\n}\n\n.parlay__leg-number {\n    font-weight: 600;\n    font-size: 13px;\n    color: #4CAF50;\n}\n\n.parlay__leg-input {\n    width: 100%;\n    padding: 10px 12px;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: 4px;\n    font-size: 15px;\n    background: #2d333b;\n    color: #e8e8e8;\n    transition: border-color 0.2s;\n}\n\n.parlay__leg-input:focus {\n    outline: none;\n    border-color: #4CAF50;\n}\n\n.parlay__leg-input::placeholder {\n    color: rgba(232, 232, 232, 0.4);\n}\n\n.parlay__leg-input.invalid {\n    border-color: #f44336;\n}\n\n.parlay__leg-outcome {\n    padding: 10px;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: 4px;\n    font-size: 14px;\n    background: #2d333b;\n    color: #e8e8e8;\n    cursor: pointer;\n}\n\n.parlay__leg-decimal {\n    font-size: 12px;\n    color: rgba(232, 232, 232, 0.6);\n    text-align: center;\n}\n\n.parlay__leg-remove {\n    padding: 6px 10px;\n    background: #f44336;\n    color: #fff;\n    border: none;\n    border-radius: 4px;\n    cursor: pointer;\n    font-size: 12px;\n    transition: background 0.2s;\n}\n\n.parlay__leg-remove:hover {\n    background: #d32f2f;\n}\n\n.parlay__add-btn {\n    width: 100%;\n    padding: 10px;\n    margin-top: 10px;\n    background: transparent;\n    border: 2px dashed rgba(255, 255, 255, 0.3);\n    color: #e8e8e8;\n    border-radius: 4px;\n    cursor: pointer;\n    font-size: 14px;\n    transition: all 0.2s;\n}\n\n.parlay__add-btn:hover {\n    border-color: #4CAF50;\n    color: #4CAF50;\n}\n\n.parlay__results-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 10px;\n    margin-bottom: 15px;\n}\n\n.parlay__result-box {\n    background: rgba(0, 0, 0, 0.2);\n    padding: 12px;\n    border-radius: 4px;\n    text-align: center;\n}\n\n.parlay__result-label {\n    font-size: 10px;\n    color: rgba(232, 232, 232, 0.7);\n    text-transform: uppercase;\n    margin-bottom: 4px;\n}\n\n.parlay__result-value {\n    font-size: 18px;\n    font-weight: 700;\n    color: #e8e8e8;\n}\n\n.parlay__result-value.highlight {\n    color: #4CAF50;\n}\n\n.parlay__result-value.warning {\n    color: #ff9800;\n}\n\n.parlay__result-value.lose {\n    color: #f44336;\n}\n\n.parlay__payout-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 10px;\n}\n\n.parlay__payout-box {\n    background: rgba(76, 175, 80, 0.1);\n    border: 1px solid rgba(76, 175, 80, 0.3);\n    padding: 15px;\n    border-radius: 4px;\n    text-align: center;\n}\n\n.parlay__payout-label {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.7);\n    text-transform: uppercase;\n    margin-bottom: 5px;\n}\n\n.parlay__payout-value {\n    font-size: 24px;\n    font-weight: 700;\n    color: #4CAF50;\n}\n\n.parlay__payout-value.lose {\n    color: #f44336;\n}\n\n.parlay__status {\n    text-align: center;\n    padding: 12px;\n    border-radius: 4px;\n    margin-top: 15px;\n    font-weight: 600;\n    font-size: 14px;\n}\n\n.parlay__status.wins {\n    background: rgba(76, 175, 80, 0.2);\n    color: #4CAF50;\n}\n\n.parlay__status.loses {\n    background: rgba(244, 67, 54, 0.2);\n    color: #f44336;\n}\n\n.parlay__status.push {\n    background: rgba(255, 152, 0, 0.2);\n    color: #ff9800;\n}\n\n.parlay__status.pending {\n    background: rgba(255, 255, 255, 0.05);\n    color: rgba(232, 232, 232, 0.6);\n}\n\n.parlay__buttons {\n    display: flex;\n    justify-content: center;\n    margin-top: 15px;\n}\n\n.parlay__btn {\n    padding: 10px 30px;\n    border: none;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.2s;\n}\n\n.parlay__btn--secondary {\n    background: #666;\n    color: #fff;\n}\n\n.parlay__btn--secondary:hover {\n    background: #555;\n}\n\n@media (max-width: 700px) {\n    .parlay__leg {\n        grid-template-columns: 1fr;\n        gap: 8px;\n    }\n\n    .parlay__leg-decimal {\n        text-align: left;\n    }\n\n    .parlay__results-grid {\n        grid-template-columns: 1fr;\n    }\n\n    .parlay__payout-grid {\n        grid-template-columns: 1fr;\n    }\n\n    .parlay__format-btn {\n        min-width: 80px;\n    }\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"parlay\"\u003e\n    \u003cdiv class=\"parlay__title\"\u003e파레이 계산기\u003c/div\u003e\n\n    \u003cdiv class=\"parlay__section\"\u003e\n        \u003cdiv class=\"parlay__section-title\"\u003e1단계: 배당률 형식 선택\u003c/div\u003e\n        \u003cdiv class=\"parlay__format-selector\"\u003e\n            \u003cbutton type=\"button\" class=\"parlay__format-btn active\" data-type=\"decimal\"\u003e십진법\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"parlay__format-btn\" data-type=\"fractional\"\u003e분수\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"parlay__format-btn\" data-type=\"american\"\u003e미국식\u003c/button\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"parlay__section\"\u003e\n        \u003cdiv class=\"parlay__section-title\"\u003e2단계: 판돈 입력\u003c/div\u003e\n        \u003cdiv class=\"parlay__input-group\"\u003e\n            \u003clabel class=\"parlay__label\"\u003e배팅 금액\u003c/label\u003e\n            \u003cinput type=\"text\" class=\"parlay__input parlay__stake\" placeholder=\"100\"\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"parlay__hint\"\u003e베팅하려는 금액\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"parlay__section\"\u003e\n        \u003cdiv class=\"parlay__section-title\"\u003e3단계: 팔레이 레그 추가\u003c/div\u003e\n        \u003cdiv class=\"parlay__legs-list\"\u003e\n            \u003cdiv class=\"parlay__leg\" data-index=\"0\"\u003e\n                \u003cspan class=\"parlay__leg-number\"\u003e다리 1\u003c/span\u003e\n                \u003cinput type=\"text\" class=\"parlay__leg-input\" placeholder=\"2.50\" data-index=\"0\"\u003e\n                \u003cselect class=\"parlay__leg-outcome\" data-index=\"0\"\u003e\n                    \u003coption value=\"win\"\u003e승리\u003c/option\u003e\n                    \u003coption value=\"lose\"\u003e패배\u003c/option\u003e\n                    \u003coption value=\"push\"\u003e무효\u003c/option\u003e\n                \u003c/select\u003e\n                \u003cspan class=\"parlay__leg-decimal\" data-index=\"0\"\u003e\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"parlay__leg\" data-index=\"1\"\u003e\n                \u003cspan class=\"parlay__leg-number\"\u003e다리 2\u003c/span\u003e\n                \u003cinput type=\"text\" class=\"parlay__leg-input\" placeholder=\"2.50\" data-index=\"1\"\u003e\n                \u003cselect class=\"parlay__leg-outcome\" data-index=\"1\"\u003e\n                    \u003coption value=\"win\"\u003e승리\u003c/option\u003e\n                    \u003coption value=\"lose\"\u003e패배\u003c/option\u003e\n                    \u003coption value=\"push\"\u003e무효\u003c/option\u003e\n                \u003c/select\u003e\n                \u003cspan class=\"parlay__leg-decimal\" data-index=\"1\"\u003e\u003c/span\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n        \u003cbutton type=\"button\" class=\"parlay__add-btn\"\u003e+ 다리 추가\u003c/button\u003e\n        \u003cdiv class=\"parlay__hint parlay__hint-format\"\u003e소수 배당률 입력 (예: 2.50)\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"parlay__section\"\u003e\n        \u003cdiv class=\"parlay__section-title\"\u003e결과\u003c/div\u003e\n        \u003cdiv class=\"parlay__results-grid\"\u003e\n            \u003cdiv class=\"parlay__result-box\"\u003e\n                \u003cdiv class=\"parlay__result-label\"\u003e다리 수\u003c/div\u003e\n                \u003cdiv class=\"parlay__result-value\" id=\"parlayLegs\"\u003e2\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"parlay__result-box\"\u003e\n                \u003cdiv class=\"parlay__result-label\"\u003e결합 확률\u003c/div\u003e\n                \u003cdiv class=\"parlay__result-value\" id=\"parlayCombinedOdds\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"parlay__result-box\"\u003e\n                \u003cdiv class=\"parlay__result-label\"\u003e묵시적 확률\u003c/div\u003e\n                \u003cdiv class=\"parlay__result-value\" id=\"parlayImpliedProb\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cdiv class=\"parlay__payout-grid\"\u003e\n            \u003cdiv class=\"parlay__payout-box\"\u003e\n                \u003cdiv class=\"parlay__payout-label\"\u003e예상 수익\u003c/div\u003e\n                \u003cdiv class=\"parlay__payout-value\" id=\"parlayPayout\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"parlay__payout-box\"\u003e\n                \u003cdiv class=\"parlay__payout-label\"\u003e이익\u003c/div\u003e\n                \u003cdiv class=\"parlay__payout-value\" id=\"parlayProfit\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cdiv class=\"parlay__status pending\" id=\"parlayStatus\"\u003e모든 다리가 승리해야합니다\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"parlay__buttons\"\u003e\n        \u003cbutton type=\"button\" class=\"parlay__btn parlay__btn--secondary\" id=\"parlayReset\"\u003e초기화\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n    let currentOddsType = 'decimal';\n    let legCount = 2;\n    const maxLegs = 15;\n\n    const placeholders = {\n        decimal: '2.50',\n        fractional: '3\\/2',\n        american: '\\u002b150'\n    };\n\n    const hints = {\n        decimal: '소수 배당률 입력 (예: 2.50)',\n        fractional: '분수 배당률 입력 (예: 3\\/2)',\n        american: '미국식 배당률 입력 (예: \\u002b150 또는 -200)'\n    };\n\n    function validateDecimal(value) {\n        return /^\\d+(\\.\\d+)?$/.test(value) \u0026\u0026 parseFloat(value) \u003e 1;\n    }\n\n    function validateFractional(value) {\n        return /^\\d+\\/\\d+$/.test(value);\n    }\n\n    function validateAmerican(value) {\n        const cleaned = value.replace(/^\\+/, '');\n        return /^-?\\d+$/.test(cleaned) \u0026\u0026 (Math.abs(parseInt(cleaned)) \u003e= 100);\n    }\n\n    function fractionalToDecimal(fraction) {\n        const parts = fraction.split('/');\n        return (parseFloat(parts[0]) / parseFloat(parts[1])) + 1;\n    }\n\n    function americanToDecimal(american) {\n        const value = parseInt(american.replace(/^\\+/, ''));\n        return value \u003e 0 ? (value / 100) + 1 : (100 / Math.abs(value)) + 1;\n    }\n\n    function decimalToAmerican(decimal) {\n        if (decimal \u003e= 2) {\n            return '+' + Math.round((decimal - 1) * 100);\n        }\n        return Math.round(-100 / (decimal - 1)).toString();\n    }\n\n    function getDecimalOdds(value) {\n        if (!value) return null;\n\n        if (currentOddsType === 'decimal') {\n            return validateDecimal(value) ? parseFloat(value) : null;\n        } else if (currentOddsType === 'fractional') {\n            return validateFractional(value) ? fractionalToDecimal(value) : null;\n        } else if (currentOddsType === 'american') {\n            return validateAmerican(value) ? americanToDecimal(value) : null;\n        }\n        return null;\n    }\n\n    function updatePlaceholders() {\n        container.querySelectorAll('.parlay__leg-input').forEach(input =\u003e {\n            input.placeholder = placeholders[currentOddsType];\n        });\n\n        const hintEl = container.querySelector('.parlay__hint-format');\n        if (hintEl) {\n            hintEl.textContent = hints[currentOddsType];\n        }\n    }\n\n    function addLeg() {\n        if (legCount \u003e= maxLegs) return;\n\n        const legsList = container.querySelector('.parlay__legs-list');\n\n        const newLeg = document.createElement('div');\n        newLeg.className = 'parlay__leg';\n        newLeg.dataset.index = legCount;\n        newLeg.innerHTML = `\n            \u003cspan class=\"parlay__leg-number\"\u003e다리 ${legCount + 1}\u003c/span\u003e\n            \u003cinput type=\"text\" class=\"parlay__leg-input\" placeholder=\"${placeholders[currentOddsType]}\" data-index=\"${legCount}\"\u003e\n            \u003cselect class=\"parlay__leg-outcome\" data-index=\"${legCount}\"\u003e\n                \u003coption value=\"win\"\u003e승리\u003c/option\u003e\n                \u003coption value=\"lose\"\u003e패배\u003c/option\u003e\n                \u003coption value=\"push\"\u003e무효\u003c/option\u003e\n            \u003c/select\u003e\n            \u003cspan class=\"parlay__leg-decimal\" data-index=\"${legCount}\"\u003e\u003c/span\u003e\n            \u003cbutton type=\"button\" class=\"parlay__leg-remove\"\u003e✕\u003c/button\u003e\n        `;\n\n        legsList.appendChild(newLeg);\n        legCount++;\n\n        newLeg.querySelector('.parlay__leg-input').addEventListener('input', calculate);\n        newLeg.querySelector('.parlay__leg-outcome').addEventListener('change', calculate);\n        newLeg.querySelector('.parlay__leg-remove').addEventListener('click', function() {\n            removeLeg(newLeg);\n        });\n\n        if (legCount \u003e= maxLegs) {\n            container.querySelector('.parlay__add-btn').style.display = 'none';\n        }\n\n        calculate();\n    }\n\n    function removeLeg(legEl) {\n        if (legCount \u003c= 2) return;\n\n        legEl.remove();\n        legCount--;\n\n        const legs = container.querySelectorAll('.parlay__leg');\n        legs.forEach((leg, index) =\u003e {\n            leg.dataset.index = index;\n            leg.querySelector('.parlay__leg-number').textContent = '다리 ' + (index + 1);\n            leg.querySelector('.parlay__leg-input').dataset.index = index;\n            leg.querySelector('.parlay__leg-outcome').dataset.index = index;\n            leg.querySelector('.parlay__leg-decimal').dataset.index = index;\n        });\n\n        if (legCount \u003c maxLegs) {\n            container.querySelector('.parlay__add-btn').style.display = 'block';\n        }\n\n        calculate();\n    }\n\n    function calculate() {\n        const inputs = container.querySelectorAll('.parlay__leg-input');\n        const outcomes = container.querySelectorAll('.parlay__leg-outcome');\n        const decimalDisplays = container.querySelectorAll('.parlay__leg-decimal');\n        const stake = parseFloat(container.querySelector('.parlay__stake').value) || 0;\n\n        let combinedOdds = 1;\n        let validLegs = 0;\n        let hasLoss = false;\n        let hasPush = false;\n        let pushCount = 0;\n\n        inputs.forEach((input, index) =\u003e {\n            const value = input.value.trim();\n            const decOdds = getDecimalOdds(value);\n            const outcome = outcomes[index].value;\n\n            if (value \u0026\u0026 !decOdds) {\n                input.classList.add('invalid');\n                decimalDisplays[index].textContent = '';\n            } else if (decOdds) {\n                input.classList.remove('invalid');\n\n                if (currentOddsType !== 'decimal') {\n                    decimalDisplays[index].textContent = `(${decOdds.toFixed(2)})`;\n                } else {\n                    decimalDisplays[index].textContent = '';\n                }\n\n                if (outcome === 'win') {\n                    combinedOdds *= decOdds;\n                    validLegs++;\n                } else if (outcome === 'push') {\n                    hasPush = true;\n                    pushCount++;\n                    validLegs++;\n                } else if (outcome === 'lose') {\n                    hasLoss = true;\n                    validLegs++;\n                }\n            } else {\n                input.classList.remove('invalid');\n                decimalDisplays[index].textContent = '';\n            }\n        });\n\n        container.querySelector('#parlayLegs').textContent = legCount;\n\n        const combinedOddsEl = container.querySelector('#parlayCombinedOdds');\n        const impliedProbEl = container.querySelector('#parlayImpliedProb');\n        const payoutEl = container.querySelector('#parlayPayout');\n        const profitEl = container.querySelector('#parlayProfit');\n        const statusEl = container.querySelector('#parlayStatus');\n\n        if (validLegs \u003e= 2 \u0026\u0026 !hasLoss) {\n            let displayOdds;\n            if (currentOddsType === 'american') {\n                displayOdds = decimalToAmerican(combinedOdds);\n            } else if (currentOddsType === 'fractional') {\n                const profit = combinedOdds - 1;\n                displayOdds = `${Math.round(profit * 100)}/100`;\n            } else {\n                displayOdds = combinedOdds.toFixed(2);\n            }\n\n            combinedOddsEl.textContent = displayOdds;\n\n            const impliedProb = (1 / combinedOdds) * 100;\n            impliedProbEl.textContent = impliedProb.toFixed(1) + '%';\n\n            if (stake \u003e 0) {\n                const payout = stake * combinedOdds;\n                const profit = payout - stake;\n\n                payoutEl.textContent = '$' + payout.toFixed(2);\n                payoutEl.className = 'parlay__payout-value';\n                profitEl.textContent = '+$' + profit.toFixed(2);\n                profitEl.className = 'parlay__payout-value';\n            } else {\n                payoutEl.textContent = '—';\n                profitEl.textContent = '—';\n            }\n\n            if (hasPush \u0026\u0026 pushCount === validLegs - 1) {\n                statusEl.textContent = '단일 베팅으로 축소 (푸시)';\n                statusEl.className = 'parlay__status push';\n            } else if (hasPush) {\n                statusEl.textContent = '팔레이 적중 (푸시 포함)';\n                statusEl.className = 'parlay__status wins';\n            } else {\n                statusEl.textContent = '팔레이 적중!';\n                statusEl.className = 'parlay__status wins';\n            }\n        } else if (hasLoss) {\n            combinedOddsEl.textContent = '—';\n            impliedProbEl.textContent = '—';\n            payoutEl.textContent = '$0.00';\n            payoutEl.className = 'parlay__payout-value lose';\n            profitEl.textContent = stake \u003e 0 ? '-$' + stake.toFixed(2) : '—';\n            profitEl.className = 'parlay__payout-value lose';\n            statusEl.textContent = '팔레이 실패';\n            statusEl.className = 'parlay__status loses';\n        } else {\n            combinedOddsEl.textContent = '—';\n            impliedProbEl.textContent = '—';\n            payoutEl.textContent = '—';\n            payoutEl.className = 'parlay__payout-value';\n            profitEl.textContent = '—';\n            profitEl.className = 'parlay__payout-value';\n            statusEl.textContent = '모든 다리가 승리해야합니다';\n            statusEl.className = 'parlay__status pending';\n        }\n    }\n\n    function reset() {\n        const legs = container.querySelectorAll('.parlay__leg');\n        legs.forEach((leg, index) =\u003e {\n            if (index \u003e= 2) leg.remove();\n        });\n        legCount = 2;\n\n        container.querySelectorAll('.parlay__leg-input').forEach(input =\u003e {\n            input.value = '';\n            input.classList.remove('invalid');\n        });\n\n        container.querySelectorAll('.parlay__leg-outcome').forEach(select =\u003e {\n            select.value = 'win';\n        });\n\n        container.querySelectorAll('.parlay__leg-decimal').forEach(span =\u003e {\n            span.textContent = '';\n        });\n\n        container.querySelector('.parlay__stake').value = '';\n\n        container.querySelector('#parlayLegs').textContent = '2';\n        container.querySelector('#parlayCombinedOdds').textContent = '—';\n        container.querySelector('#parlayImpliedProb').textContent = '—';\n        container.querySelector('#parlayPayout').textContent = '—';\n        container.querySelector('#parlayPayout').className = 'parlay__payout-value';\n        container.querySelector('#parlayProfit').textContent = '—';\n        container.querySelector('#parlayProfit').className = 'parlay__payout-value';\n        container.querySelector('#parlayStatus').textContent = '모든 다리가 승리해야합니다';\n        container.querySelector('#parlayStatus').className = 'parlay__status pending';\n\n        container.querySelector('.parlay__add-btn').style.display = 'block';\n    }\n\n    \n    container.querySelectorAll('.parlay__format-btn').forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            container.querySelectorAll('.parlay__format-btn').forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            currentOddsType = this.dataset.type;\n            updatePlaceholders();\n            calculate();\n        });\n    });\n\n    container.querySelectorAll('.parlay__leg-input').forEach(input =\u003e {\n        input.addEventListener('input', calculate);\n    });\n\n    container.querySelectorAll('.parlay__leg-outcome').forEach(select =\u003e {\n        select.addEventListener('change', calculate);\n    });\n\n    container.querySelector('.parlay__stake').addEventListener('input', calculate);\n    container.querySelector('.parlay__add-btn').addEventListener('click', addLeg);\n    container.querySelector('#parlayReset').addEventListener('click', reset);\n})();\n\u003c/script\u003e","title":"팔레이 계산기 - 다중 배팅 수익"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 단위 스테이크 베팅 수 7 총 지분 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/patent-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"patent_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e단위 스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e7\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [1, 2, 3];\n    var root = document.getElementById('patent_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"패턴트 계산기 - 7개 배팅 시스템"},{"content":" 예측 유형 스트레이트 예측 역방향 예측 1위 확률 2위 확률 스테이크 베팅 수 1 총 지분 - 예상 배당금 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/forecast-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"forecast_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e예측 유형\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-type\"\u003e\n            \u003coption value=\"straight\"\u003e스트레이트 예측\u003c/option\u003e\n            \u003coption value=\"reverse\"\u003e역방향 예측\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e1위 확률\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds1\" type=\"text\" placeholder=\"3.00\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e2위 확률\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds2\" type=\"text\" placeholder=\"5.00\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"1\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-numbets\"\u003e1\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e예상 배당금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-dividend\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('forecast_0');\n    var typeEl = root.querySelector('.js-type');\n    var odds1El = root.querySelector('.js-odds1');\n    var odds2El = root.querySelector('.js-odds2');\n    var stakeEl = root.querySelector('.js-stake');\n    var numBetsEl = root.querySelector('.js-numbets');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var dividendEl = root.querySelector('.js-dividend');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var o1 = parseFloat(odds1El.value);\n        var o2 = parseFloat(odds2El.value);\n        var stake = parseFloat(stakeEl.value);\n        var isReverse = typeEl.value === 'reverse';\n        var numBets = isReverse ? 2 : 1;\n        numBetsEl.textContent = numBets;\n\n        if (isNaN(o1) || isNaN(o2) || o1 \u003c= 1 || o2 \u003c= 1) {\n            totalStakeEl.textContent = '-'; dividendEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return;\n        }\n        if (!stake || stake \u003c= 0) {\n            totalStakeEl.textContent = '-'; dividendEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return;\n        }\n\n        var dividend = o1 * o2;\n        var totalStake = stake * numBets;\n        var payout = dividend * stake;\n\n        totalStakeEl.textContent = formatNumber(totalStake);\n        dividendEl.textContent = formatNumber(dividend);\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - totalStake);\n    }\n\n    typeEl.addEventListener('change', update);\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        odds1El.value=''; odds2El.value=''; stakeEl.value='';\n        typeEl.selectedIndex=0; numBetsEl.textContent='1';\n        totalStakeEl.textContent='-'; dividendEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"포캐스트 계산기 - 1-2위 순서 배팅"},{"content":" 홈 평균 목표 원정 평균 골 홈 승리 - 무승부 - 원정 승리 - 2.5 이상 - 2.5 미만 - BTTS(예) - H\\A012345 재설정 ","permalink":"https://calculators-odds.com/ko/poisson-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"poisson_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e홈 평균 목표\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-home\" type=\"text\" placeholder=\"1.5\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e원정 평균 골\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-away\" type=\"text\" placeholder=\"1.2\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e홈 승리\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-homewin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e무승부\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-draw\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e원정 승리\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-awaywin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e2.5 이상\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-over25\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e2.5 미만\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-under25\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eBTTS(예)\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-btts\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__table-wrap\"\u003e\n        \u003ctable class=\"calc-wrap__table js-scoretable\"\u003e\n            \u003cthead\u003e\u003ctr\u003e\u003cth\u003eH\\A\u003c/th\u003e\u003cth\u003e0\u003c/th\u003e\u003cth\u003e1\u003c/th\u003e\u003cth\u003e2\u003c/th\u003e\u003cth\u003e3\u003c/th\u003e\u003cth\u003e4\u003c/th\u003e\u003cth\u003e5\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n            \u003ctbody\u003e\u003c/tbody\u003e\n        \u003c/table\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('poisson_0');\n    var homeEl = root.querySelector('.js-home');\n    var awayEl = root.querySelector('.js-away');\n    var homeWinEl = root.querySelector('.js-homewin');\n    var drawEl = root.querySelector('.js-draw');\n    var awayWinEl = root.querySelector('.js-awaywin');\n    var over25El = root.querySelector('.js-over25');\n    var under25El = root.querySelector('.js-under25');\n    var bttsEl = root.querySelector('.js-btts');\n    var tableEl = root.querySelector('.js-scoretable tbody');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function poisson(lambda, k) {\n        return (Math.pow(lambda, k) * Math.exp(-lambda)) / factorial(k);\n    }\n    function factorial(n) {\n        if (n \u003c= 1) return 1;\n        var r = 1; for (var i = 2; i \u003c= n; i++) r *= i; return r;\n    }\n\n    function update() {\n        var homeLambda = parseFloat(homeEl.value);\n        var awayLambda = parseFloat(awayEl.value);\n        if (isNaN(homeLambda) || isNaN(awayLambda) || homeLambda \u003c= 0 || awayLambda \u003c= 0) {\n            homeWinEl.textContent='-'; drawEl.textContent='-'; awayWinEl.textContent='-';\n            over25El.textContent='-'; under25El.textContent='-'; bttsEl.textContent='-';\n            tableEl.innerHTML=''; return;\n        }\n\n        var homeProbs = [], awayProbs = [];\n        for (var i = 0; i \u003c= 5; i++) {\n            homeProbs.push(poisson(homeLambda, i));\n            awayProbs.push(poisson(awayLambda, i));\n        }\n\n        var homeWin = 0, draw = 0, awayWin = 0, under25 = 0, btts = 0;\n        var html = '';\n        for (var h = 0; h \u003c= 5; h++) {\n            html += '\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003e' + h + '\u003c/strong\u003e\u003c/td\u003e';\n            for (var a = 0; a \u003c= 5; a++) {\n                var p = homeProbs[h] * awayProbs[a];\n                html += '\u003ctd\u003e' + (p * 100).toFixed(1) + '%\u003c/td\u003e';\n                if (h \u003e a) homeWin += p;\n                else if (h === a) draw += p;\n                else awayWin += p;\n                if (h + a \u003c= 2) under25 += p;\n                if (h \u003e 0 \u0026\u0026 a \u003e 0) btts += p;\n            }\n            html += '\u003c/tr\u003e';\n        }\n\n        homeWinEl.textContent = (homeWin * 100).toFixed(1) + '%';\n        drawEl.textContent = (draw * 100).toFixed(1) + '%';\n        awayWinEl.textContent = (awayWin * 100).toFixed(1) + '%';\n        under25El.textContent = (under25 * 100).toFixed(1) + '%';\n        over25El.textContent = ((1 - under25) * 100).toFixed(1) + '%';\n        bttsEl.textContent = (btts * 100).toFixed(1) + '%';\n        tableEl.innerHTML = html;\n    }\n\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        homeEl.value=''; awayEl.value='';\n        homeWinEl.textContent='-'; drawEl.textContent='-'; awayWinEl.textContent='-';\n        over25El.textContent='-'; under25El.textContent='-'; bttsEl.textContent='-';\n        tableEl.innerHTML='';\n    });\n})();\n\u003c/script\u003e","title":"푸아송 계산기 - 축구 스코어 예측"},{"content":" 배당률 포맷 소수 분수 미국식 선택 1 선택 2 선택 3 선택 4 선택 5 선택 6 단위 스테이크 베팅 수 57 총 지분 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/heinz-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"heinz_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 5\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e선택 6\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e단위 스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e베팅 수\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e57\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e총 지분\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2, 3, 4, 5, 6];\n    var root = document.getElementById('heinz_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"하인츠 계산기 - 57개 배팅 시스템"},{"content":" 원래 라인 원래 확률(미국식) 액션 포인트 구매 판매 포인트 포인트 0.5 1 1.5 2 스테이크 새로운 라인 - 새로운 확률 - 지불금 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/half-point-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"halfpoint_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e원래 라인\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-line\" type=\"text\" placeholder=\"-3\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e원래 확률(미국식)\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"-110\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e액션\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-action\"\u003e\n            \u003coption value=\"buy\"\u003e포인트 구매\u003c/option\u003e\n            \u003coption value=\"sell\"\u003e판매 포인트\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e포인트\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-points\"\u003e\n            \u003coption value=\"0.5\"\u003e0.5\u003c/option\u003e\n            \u003coption value=\"1\"\u003e1\u003c/option\u003e\n            \u003coption value=\"1.5\"\u003e1.5\u003c/option\u003e\n            \u003coption value=\"2\"\u003e2\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e스테이크\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e새로운 라인\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-newline\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e새로운 확률\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-newodds\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e지불금\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('halfpoint_0');\n    var lineEl = root.querySelector('.js-line');\n    var oddsEl = root.querySelector('.js-odds');\n    var actionEl = root.querySelector('.js-action');\n    var pointsEl = root.querySelector('.js-points');\n    var stakeEl = root.querySelector('.js-stake');\n    var newLineEl = root.querySelector('.js-newline');\n    var newOddsEl = root.querySelector('.js-newodds');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var resetBtn = root.querySelector('.js-reset');\n\n    \n    var COST_PER_HALF = 10; \n\n    function update() {\n        var line = parseFloat(lineEl.value);\n        var oddsVal = parseInt(oddsEl.value);\n        var action = actionEl.value;\n        var points = parseFloat(pointsEl.value);\n        var stake = parseFloat(stakeEl.value);\n\n        if (isNaN(line) || isNaN(oddsVal) || oddsVal === 0) {\n            newLineEl.textContent='-'; newOddsEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-'; return;\n        }\n\n        var halfPoints = points / 0.5;\n        var newLine, adjustedOdds;\n\n        if (action === 'buy') {\n            \n            newLine = line + points;\n            adjustedOdds = oddsVal - (halfPoints * COST_PER_HALF);\n        } else {\n            \n            newLine = line - points;\n            adjustedOdds = oddsVal + (halfPoints * COST_PER_HALF);\n        }\n\n        var newLineStr = newLine \u003e= 0 ? '+' + newLine : '' + newLine;\n        var newOddsStr = adjustedOdds \u003e= 0 ? '+' + adjustedOdds : '' + adjustedOdds;\n        newLineEl.textContent = newLineStr;\n        newOddsEl.textContent = newOddsStr;\n\n        if (!stake || stake \u003c= 0) { payoutEl.textContent='-'; profitEl.textContent='-'; return; }\n\n        \n        var dec;\n        if (adjustedOdds \u003e 0) dec = (adjustedOdds / 100) + 1;\n        else dec = (100 / Math.abs(adjustedOdds)) + 1;\n\n        var payout = stake * dec;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - stake);\n    }\n\n    root.addEventListener('input', update);\n    actionEl.addEventListener('change', update);\n    pointsEl.addEventListener('change', update);\n    resetBtn.addEventListener('click', function() {\n        lineEl.value=''; oddsEl.value=''; stakeEl.value='';\n        actionEl.selectedIndex=0; pointsEl.selectedIndex=0;\n        newLineEl.textContent='-'; newOddsEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"하프 포인트 계산기 - 포인트 매수/매도"},{"content":" 헤지 배팅 계산기 1단계: 원래 베팅 배당률 포맷 십진법 분수 미국식 배당률 형식을 선택하세요 원래 확률 소수 배당률 입력 (예: 2.50, 1.80, 3.00) 원래 스테이크 원래 베팅에 건 금액 2단계: 헤지 베팅 세부 정보 배당률 포맷 십진법 분수 미국식 헤지 배당률 형식을 선택하세요 헤지 확률 소수 배당률 입력 (예: 2.50, 1.80, 3.00) 헤지 모드 균등 이익 손실 없음 (손익분기) 동일 수익: 결과에 관계없이 동일한 수익 결과 헤지 스테이크 - 헤지에 베팅할 금액 원본이 승리할 경우 이익 - 헤지 승리 시 이익 - 세부 내역 총 투자: - 원래 수익: - 헤지 수익: - 이익 보장: - 초기화 ","permalink":"https://calculators-odds.com/ko/hedge-bet-calculator/","summary":"\u003cstyle\u003e\n    .hedge {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .hedge__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .hedge__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .hedge__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .hedge__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #2196F3;\n        color: #2196F3;\n    }\n\n    .hedge__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n    }\n\n    .hedge__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .hedge__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n    }\n\n    .hedge__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .hedge__input, .hedge__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .hedge__input:focus, .hedge__select:focus {\n        outline: none;\n        border-color: #2196F3;\n    }\n\n    .hedge__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .hedge__select {\n        cursor: pointer;\n    }\n\n    .hedge__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .hedge__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .hedge__mode-row {\n        display: flex;\n        gap: 10px;\n    }\n\n    .hedge__mode-btn {\n        flex: 1;\n        padding: 12px;\n        border: 2px solid #2196F3;\n        background: transparent;\n        color: #e8e8e8;\n        border-radius: 4px;\n        cursor: pointer;\n        font-size: 14px;\n        transition: all 0.2s;\n    }\n\n    .hedge__mode-btn:hover {\n        background: rgba(33, 150, 243, 0.2);\n    }\n\n    .hedge__mode-btn.active {\n        background: #2196F3;\n        color: #fff;\n    }\n\n    .hedge__mode-hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 8px;\n        text-align: center;\n    }\n\n    .hedge__output {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .hedge__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .hedge__result-box {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n        border-radius: 8px;\n        padding: 20px;\n        text-align: center;\n        margin-bottom: 20px;\n    }\n\n    .hedge__result-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .hedge__result-value {\n        font-size: 32px;\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .hedge__result-hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 8px;\n    }\n\n    .hedge__outcomes {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .hedge__outcome {\n        background: rgba(255, 255, 255, 0.05);\n        padding: 15px;\n        border-radius: 6px;\n        text-align: center;\n    }\n\n    .hedge__outcome-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .hedge__outcome-value {\n        font-size: 22px;\n        font-weight: bold;\n    }\n\n    .hedge__outcome-value.positive {\n        color: #4CAF50;\n    }\n\n    .hedge__outcome-value.negative {\n        color: #f44336;\n    }\n\n    .hedge__outcome-value.neutral {\n        color: #ff9800;\n    }\n\n    .hedge__summary {\n        margin-top: 20px;\n        padding-top: 15px;\n        border-top: 1px solid rgba(255,255,255,0.1);\n    }\n\n    .hedge__summary-title {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 10px;\n        color: rgba(232, 232, 232, 0.7);\n    }\n\n    .hedge__summary-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 10px;\n    }\n\n    .hedge__summary-item {\n        display: flex;\n        justify-content: space-between;\n        font-size: 13px;\n        padding: 8px;\n        background: rgba(0, 0, 0, 0.2);\n        border-radius: 4px;\n    }\n\n    .hedge__summary-item span:first-child {\n        color: rgba(232, 232, 232, 0.6);\n    }\n\n    .hedge__summary-item span:last-child {\n        font-weight: bold;\n    }\n\n    .hedge__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n    }\n\n    .hedge__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .hedge__row {\n            flex-direction: column;\n        }\n        .hedge__outcomes {\n            grid-template-columns: 1fr;\n        }\n        .hedge__mode-row {\n            flex-direction: column;\n        }\n        .hedge__summary-grid {\n            grid-template-columns: 1fr;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"hedge\"\u003e\n    \u003cdiv class=\"hedge__title\"\u003e헤지 배팅 계산기\u003c/div\u003e\n\n    \u003cdiv class=\"hedge__container\"\u003e\n        \n        \u003cdiv class=\"hedge__section\"\u003e\n            \u003cdiv class=\"hedge__section-title\"\u003e1단계: 원래 베팅\u003c/div\u003e\n            \u003cdiv class=\"hedge__row\"\u003e\n                \u003cdiv class=\"hedge__input-group\"\u003e\n                    \u003clabel class=\"hedge__label\"\u003e배당률 포맷\u003c/label\u003e\n                    \u003cselect class=\"hedge__select hedge__original-type\"\u003e\n                        \u003coption value=\"Decimal\"\u003e십진법\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n                        \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"hedge__hint\"\u003e배당률 형식을 선택하세요\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hedge__input-group\"\u003e\n                    \u003clabel class=\"hedge__label\"\u003e원래 확률\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"hedge__input hedge__original-odds\" placeholder=\"2.50\" /\u003e\n                    \u003cspan class=\"hedge__hint hedge__original-odds-hint\" data-decimal=\"소수 배당률 입력 (예: 2.50, 1.80, 3.00)\" data-fractional=\"분수 배당률 입력 (예: 3/1, 5/2, 11/4)\" data-american=\"미국식 배당률 입력 (예: \u0026#43;150, -110, \u0026#43;200)\"\u003e소수 배당률 입력 (예: 2.50, 1.80, 3.00)\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"hedge__row\"\u003e\n                \u003cdiv class=\"hedge__input-group\"\u003e\n                    \u003clabel class=\"hedge__label\"\u003e원래 스테이크\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"hedge__input hedge__original-stake\" placeholder=\"100\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"hedge__hint\"\u003e원래 베팅에 건 금액\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"hedge__section\"\u003e\n            \u003cdiv class=\"hedge__section-title\"\u003e2단계: 헤지 베팅 세부 정보\u003c/div\u003e\n            \u003cdiv class=\"hedge__row\"\u003e\n                \u003cdiv class=\"hedge__input-group\"\u003e\n                    \u003clabel class=\"hedge__label\"\u003e배당률 포맷\u003c/label\u003e\n                    \u003cselect class=\"hedge__select hedge__hedge-type\"\u003e\n                        \u003coption value=\"Decimal\"\u003e십진법\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n                        \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"hedge__hint\"\u003e헤지 배당률 형식을 선택하세요\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hedge__input-group\"\u003e\n                    \u003clabel class=\"hedge__label\"\u003e헤지 확률\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"hedge__input hedge__hedge-odds\" placeholder=\"1.80\" /\u003e\n                    \u003cspan class=\"hedge__hint hedge__hedge-odds-hint\" data-decimal=\"소수 배당률 입력 (예: 2.50, 1.80, 3.00)\" data-fractional=\"분수 배당률 입력 (예: 3/1, 5/2, 11/4)\" data-american=\"미국식 배당률 입력 (예: \u0026#43;150, -110, \u0026#43;200)\"\u003e소수 배당률 입력 (예: 2.50, 1.80, 3.00)\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"hedge__row\"\u003e\n                \u003cdiv class=\"hedge__input-group\"\u003e\n                    \u003clabel class=\"hedge__label\"\u003e헤지 모드\u003c/label\u003e\n                    \u003cdiv class=\"hedge__mode-row\"\u003e\n                        \u003cbutton type=\"button\" class=\"hedge__mode-btn active\" data-mode=\"equal\"\u003e균등 이익\u003c/button\u003e\n                        \u003cbutton type=\"button\" class=\"hedge__mode-btn\" data-mode=\"noLoss\"\u003e손실 없음 (손익분기)\u003c/button\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"hedge__mode-hint hedge__mode-description\" data-equal=\"동일 수익: 결과에 관계없이 동일한 수익\" data-noloss=\"손실 없음: 헤지 승리 시 손익분기, 원래 승리 시 수익\"\u003e동일 수익: 결과에 관계없이 동일한 수익\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"hedge__output\"\u003e\n            \u003cdiv class=\"hedge__output-title\"\u003e결과\u003c/div\u003e\n\n            \u003cdiv class=\"hedge__result-box\"\u003e\n                \u003cdiv class=\"hedge__result-label\"\u003e헤지 스테이크\u003c/div\u003e\n                \u003cdiv class=\"hedge__result-value hedge__hedge-stake-result\"\u003e-\u003c/div\u003e\n                \u003cdiv class=\"hedge__result-hint\"\u003e헤지에 베팅할 금액\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"hedge__outcomes\"\u003e\n                \u003cdiv class=\"hedge__outcome\"\u003e\n                    \u003cdiv class=\"hedge__outcome-label\"\u003e원본이 승리할 경우 이익\u003c/div\u003e\n                    \u003cdiv class=\"hedge__outcome-value hedge__profit-original\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hedge__outcome\"\u003e\n                    \u003cdiv class=\"hedge__outcome-label\"\u003e헤지 승리 시 이익\u003c/div\u003e\n                    \u003cdiv class=\"hedge__outcome-value hedge__profit-hedge\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"hedge__summary\"\u003e\n                \u003cdiv class=\"hedge__summary-title\"\u003e세부 내역\u003c/div\u003e\n                \u003cdiv class=\"hedge__summary-grid\"\u003e\n                    \u003cdiv class=\"hedge__summary-item\"\u003e\n                        \u003cspan\u003e총 투자:\u003c/span\u003e\n                        \u003cspan class=\"hedge__total-invested\"\u003e-\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"hedge__summary-item\"\u003e\n                        \u003cspan\u003e원래 수익:\u003c/span\u003e\n                        \u003cspan class=\"hedge__original-return\"\u003e-\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"hedge__summary-item\"\u003e\n                        \u003cspan\u003e헤지 수익:\u003c/span\u003e\n                        \u003cspan class=\"hedge__hedge-return\"\u003e-\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"hedge__summary-item\"\u003e\n                        \u003cspan\u003e이익 보장:\u003c/span\u003e\n                        \u003cspan class=\"hedge__guaranteed-profit\"\u003e-\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cbutton class=\"hedge__reset\" type=\"button\"\u003e초기화\u003c/button\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const originalTypeSelect = container.querySelector('.hedge__original-type');\n    const originalOddsInput = container.querySelector('.hedge__original-odds');\n    const originalStakeInput = container.querySelector('.hedge__original-stake');\n    const originalOddsHint = container.querySelector('.hedge__original-odds-hint');\n\n    const hedgeTypeSelect = container.querySelector('.hedge__hedge-type');\n    const hedgeOddsInput = container.querySelector('.hedge__hedge-odds');\n    const hedgeOddsHint = container.querySelector('.hedge__hedge-odds-hint');\n\n    const modeBtns = container.querySelectorAll('.hedge__mode-btn');\n    const modeDescription = container.querySelector('.hedge__mode-description');\n    const resetBtn = container.querySelector('.hedge__reset');\n\n    const hedgeStakeResult = container.querySelector('.hedge__hedge-stake-result');\n    const profitOriginal = container.querySelector('.hedge__profit-original');\n    const profitHedge = container.querySelector('.hedge__profit-hedge');\n    const totalInvested = container.querySelector('.hedge__total-invested');\n    const originalReturn = container.querySelector('.hedge__original-return');\n    const hedgeReturn = container.querySelector('.hedge__hedge-return');\n    const guaranteedProfit = container.querySelector('.hedge__guaranteed-profit');\n\n    let selectedMode = 'equal';\n\n    const modeDescriptions = {\n        'equal': modeDescription.dataset.equal,\n        'noLoss': modeDescription.dataset.noloss\n    };\n\n    \n    function validateFractionalCoefficient(coefficient) {\n        return /^\\d+\\/\\d+$/.test(coefficient);\n    }\n\n    function validateDecimalCoefficient(coefficient) {\n        return /^\\d+(\\.\\d+)?$/.test(coefficient) \u0026\u0026 parseFloat(coefficient) \u003e 1;\n    }\n\n    function validateAmericanCoefficient(coefficient) {\n        return /^[-+]?\\d+$/.test(coefficient);\n    }\n\n    \n    function convertFractionToDecimal(fraction) {\n        const parts = fraction.split('/');\n        if (parts.length !== 2) return null;\n        const numerator = parseFloat(parts[0]);\n        const denominator = parseFloat(parts[1]);\n        if (isNaN(numerator) || isNaN(denominator) || denominator === 0) return null;\n        return (numerator / denominator) + 1;\n    }\n\n    function convertAmericanToDecimal(americanOdds) {\n        const oddsValue = parseFloat(americanOdds);\n        if (isNaN(oddsValue)) return null;\n        if (oddsValue \u003e 0) {\n            return (oddsValue / 100) + 1;\n        } else if (oddsValue \u003c 0) {\n            return (100 / Math.abs(oddsValue)) + 1;\n        }\n        return 2;\n    }\n\n    function getDecimalOdds(typeSelect, oddsInput) {\n        const type = typeSelect.value;\n        const odds = oddsInput.value.trim();\n\n        if (type === 'Fractional') {\n            if (!validateFractionalCoefficient(odds)) return null;\n            return convertFractionToDecimal(odds);\n        } else if (type === 'Decimal') {\n            if (!validateDecimalCoefficient(odds)) return null;\n            return parseFloat(odds);\n        } else if (type === 'American') {\n            if (!validateAmericanCoefficient(odds)) return null;\n            return convertAmericanToDecimal(odds);\n        }\n        return null;\n    }\n\n    function calculate() {\n        const origDecimalOdds = getDecimalOdds(originalTypeSelect, originalOddsInput);\n        const hedgeDecimalOdds = getDecimalOdds(hedgeTypeSelect, hedgeOddsInput);\n        const origStake = parseFloat(originalStakeInput.value);\n\n        \n        if (origDecimalOdds === null || origDecimalOdds \u003c= 1) {\n            originalOddsInput.classList.add('invalid');\n            resetOutput();\n            return;\n        } else {\n            originalOddsInput.classList.remove('invalid');\n        }\n\n        \n        if (hedgeDecimalOdds === null || hedgeDecimalOdds \u003c= 1) {\n            hedgeOddsInput.classList.add('invalid');\n            resetOutput();\n            return;\n        } else {\n            hedgeOddsInput.classList.remove('invalid');\n        }\n\n        \n        if (isNaN(origStake) || origStake \u003c= 0) {\n            resetOutput();\n            return;\n        }\n\n        \n        const origPotentialReturn = origStake * origDecimalOdds;\n\n        let hedgeStake;\n\n        if (selectedMode === 'equal') {\n            \n            hedgeStake = origPotentialReturn / hedgeDecimalOdds;\n        } else {\n            \n            hedgeStake = origStake / (hedgeDecimalOdds - 1);\n        }\n\n        const hedgePotentialReturn = hedgeStake * hedgeDecimalOdds;\n        const totalStake = origStake + hedgeStake;\n\n        \n        const profitIfOriginalWins = origPotentialReturn - totalStake;\n        const profitIfHedgeWins = hedgePotentialReturn - totalStake;\n\n        \n        hedgeStakeResult.textContent = '$' + hedgeStake.toFixed(2);\n\n        profitOriginal.textContent = '$' + profitIfOriginalWins.toFixed(2);\n        profitOriginal.className = 'hedge__outcome-value ' + (profitIfOriginalWins \u003e= 0 ? 'positive' : 'negative');\n\n        profitHedge.textContent = '$' + profitIfHedgeWins.toFixed(2);\n        profitHedge.className = 'hedge__outcome-value ' + (profitIfHedgeWins \u003e= 0 ? 'positive' : (profitIfHedgeWins \u003e -0.01 ? 'neutral' : 'negative'));\n\n        totalInvested.textContent = '$' + totalStake.toFixed(2);\n        originalReturn.textContent = '$' + origPotentialReturn.toFixed(2);\n        hedgeReturn.textContent = '$' + hedgePotentialReturn.toFixed(2);\n\n        const minProfit = Math.min(profitIfOriginalWins, profitIfHedgeWins);\n        guaranteedProfit.textContent = '$' + minProfit.toFixed(2);\n    }\n\n    function resetOutput() {\n        hedgeStakeResult.textContent = '-';\n        profitOriginal.textContent = '-';\n        profitOriginal.className = 'hedge__outcome-value';\n        profitHedge.textContent = '-';\n        profitHedge.className = 'hedge__outcome-value';\n        totalInvested.textContent = '-';\n        originalReturn.textContent = '-';\n        hedgeReturn.textContent = '-';\n        guaranteedProfit.textContent = '-';\n    }\n\n    function resetAll() {\n        originalOddsInput.value = '';\n        originalStakeInput.value = '';\n        hedgeOddsInput.value = '';\n        originalOddsInput.classList.remove('invalid');\n        hedgeOddsInput.classList.remove('invalid');\n\n        modeBtns.forEach(btn =\u003e btn.classList.remove('active'));\n        modeBtns[0].classList.add('active');\n        selectedMode = 'equal';\n        modeDescription.textContent = modeDescriptions['equal'];\n\n        updatePlaceholder(originalTypeSelect, originalOddsInput, originalOddsHint);\n        updatePlaceholder(hedgeTypeSelect, hedgeOddsInput, hedgeOddsHint);\n\n        resetOutput();\n    }\n\n    \n    function updatePlaceholder(typeSelect, oddsInput, hintEl) {\n        const type = typeSelect.value;\n        if (type === 'Fractional') {\n            oddsInput.placeholder = '3/1';\n            hintEl.textContent = hintEl.dataset.fractional;\n        } else if (type === 'Decimal') {\n            oddsInput.placeholder = '2.50';\n            hintEl.textContent = hintEl.dataset.decimal;\n        } else if (type === 'American') {\n            oddsInput.placeholder = '+150';\n            hintEl.textContent = hintEl.dataset.american;\n        }\n    }\n\n    \n    originalTypeSelect.addEventListener('change', function() {\n        updatePlaceholder(originalTypeSelect, originalOddsInput, originalOddsHint);\n        calculate();\n    });\n\n    hedgeTypeSelect.addEventListener('change', function() {\n        updatePlaceholder(hedgeTypeSelect, hedgeOddsInput, hedgeOddsHint);\n        calculate();\n    });\n\n    originalOddsInput.addEventListener('input', calculate);\n    originalStakeInput.addEventListener('input', calculate);\n    hedgeOddsInput.addEventListener('input', calculate);\n\n    modeBtns.forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            modeBtns.forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            selectedMode = this.dataset.mode;\n            modeDescription.textContent = modeDescriptions[selectedMode];\n            calculate();\n        });\n    });\n\n    resetBtn.addEventListener('click', resetAll);\n\n    \n    updatePlaceholder(originalTypeSelect, originalOddsInput, originalOddsHint);\n    updatePlaceholder(hedgeTypeSelect, hedgeOddsInput, hedgeOddsHint);\n})();\n\u003c/script\u003e","title":"헤지 배팅 계산기 - 이익 보장"},{"content":" 이벤트 유형 양방향 (1-2) 3방향 (1-X-2) 배당률 포맷 소수 분수 미국식 총 지분 결과 1 무승부 (X) 결과 2 여백 - 스테이크 1 - 스테이크 X - 스테이크 2 - 이익 - 재설정 ","permalink":"https://calculators-odds.com/ko/surebet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"surebet_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e이벤트 유형\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-eventtype\"\u003e\n            \u003coption value=\"2\"\u003e양방향 (1-2)\u003c/option\u003e\n            \u003coption value=\"3\"\u003e3방향 (1-X-2)\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e배당률 포맷\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003e소수\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003e분수\u003c/option\u003e\n            \u003coption value=\"American\"\u003e미국식\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003e총 지분\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-totalstake\" type=\"text\" placeholder=\"1000\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__grid calc-wrap__grid--3 js-oddsgrid\"\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e결과 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds1\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row calc-wrap__row--hidden js-xrow\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e무승부 (X)\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-oddsx\" type=\"text\" placeholder=\"3.50\" /\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003e결과 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds2\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e여백\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-margin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item js-result-msg\" style=\"display:none\"\u003e\n            \u003cspan class=\"calc-wrap__result-value js-msg\"\u003e\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results js-stakes-output\" style=\"display:none\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e스테이크 1\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-s1\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item js-sx-item\" style=\"display:none\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e스테이크 X\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-sx\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e스테이크 2\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-s2\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e이익\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003e재설정\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('surebet_0');\n    var eventTypeEl = root.querySelector('.js-eventtype');\n    var formatEl = root.querySelector('.js-format');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var odds1El = root.querySelector('.js-odds1');\n    var oddsXEl = root.querySelector('.js-oddsx');\n    var odds2El = root.querySelector('.js-odds2');\n    var xRow = root.querySelector('.js-xrow');\n    var marginEl = root.querySelector('.js-margin');\n    var msgContainer = root.querySelector('.js-result-msg');\n    var msgEl = root.querySelector('.js-msg');\n    var stakesOutput = root.querySelector('.js-stakes-output');\n    var s1El = root.querySelector('.js-s1');\n    var sxEl = root.querySelector('.js-sx');\n    var sxItem = root.querySelector('.js-sx-item');\n    var s2El = root.querySelector('.js-s2');\n    var profitEl = root.querySelector('.js-profit');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var is3way = eventTypeEl.value === '3';\n        xRow.classList.toggle('calc-wrap__row--hidden', !is3way);\n        sxItem.style.display = is3way ? '' : 'none';\n\n        var d1 = convertToDecimal(odds1El.value.trim(), format);\n        var d2 = convertToDecimal(odds2El.value.trim(), format);\n        var dx = is3way ? convertToDecimal(oddsXEl.value.trim(), format) : null;\n\n        [odds1El, odds2El, oddsXEl].forEach(function(el) { el.classList.remove('invalid'); });\n        if (odds1El.value.trim() \u0026\u0026 !d1) odds1El.classList.add('invalid');\n        if (odds2El.value.trim() \u0026\u0026 !d2) odds2El.classList.add('invalid');\n        if (is3way \u0026\u0026 oddsXEl.value.trim() \u0026\u0026 !dx) oddsXEl.classList.add('invalid');\n\n        if (!d1 || !d2 || (is3way \u0026\u0026 !dx)) {\n            marginEl.textContent = '-'; msgContainer.style.display = 'none'; stakesOutput.style.display = 'none';\n            return;\n        }\n\n        var invertedSum = 1/d1 + 1/d2;\n        if (is3way) invertedSum += 1/dx;\n\n        var margin = (1 - invertedSum) * 100;\n        marginEl.textContent = margin.toFixed(2) + '%';\n\n        msgContainer.style.display = '';\n        if (margin \u003e 0) {\n            marginEl.style.color = '#4CAF50';\n            msgEl.textContent = 'Surebet을 찾았습니다! 보장된 수익이 가능합니다.';\n            msgEl.style.color = '#4CAF50';\n        } else {\n            marginEl.style.color = '#f44336';\n            msgEl.textContent = '확실하지 않습니다. 이러한 확률은 손실을 초래합니다.';\n            msgEl.style.color = '#f44336';\n        }\n\n        var totalStake = parseFloat(totalStakeEl.value);\n        if (!totalStake || totalStake \u003c= 0) { stakesOutput.style.display = 'none'; return; }\n\n        stakesOutput.style.display = '';\n        var stake1 = (totalStake / invertedSum) * (1/d1);\n        var stake2 = (totalStake / invertedSum) * (1/d2);\n        s1El.textContent = formatNumber(stake1);\n        s2El.textContent = formatNumber(stake2);\n\n        if (is3way) {\n            var stakeX = (totalStake / invertedSum) * (1/dx);\n            sxEl.textContent = formatNumber(stakeX);\n        }\n\n        var payout = totalStake / invertedSum;\n        profitEl.textContent = formatNumber(payout - totalStake);\n    }\n\n    eventTypeEl.addEventListener('change', update);\n    formatEl.addEventListener('change', function() {\n        var ph = getOddsPlaceholder(formatEl.value);\n        [odds1El, odds2El, oddsXEl].forEach(function(el){el.placeholder=ph;});\n        update();\n    });\n    [odds1El, odds2El, oddsXEl, totalStakeEl].forEach(function(el){el.addEventListener('input', update);});\n\n    resetBtn.addEventListener('click', function() {\n        odds1El.value=''; odds2El.value=''; oddsXEl.value=''; totalStakeEl.value='';\n        formatEl.selectedIndex=0; eventTypeEl.selectedIndex=0;\n        [odds1El, odds2El, oddsXEl].forEach(function(el){el.classList.remove('invalid');});\n        marginEl.textContent='-'; msgContainer.style.display='none'; stakesOutput.style.display='none';\n    });\n})();\n\u003c/script\u003e","title":"확정 배팅 계산기 - 무위험 수익"}]