Почему выдает NaN в jQuery

let engine
engine = $('input[name=engine]:checked').val()
engine = parseInt(engine)
$('#price').text(engine)

код HTML

<input id="eng1" type="radio" name="engine" value="10">
<input id="eng2" type="radio" name="engine" value="999">

Ответы (2 шт):

Автор решения: Igor

Потому что сначала ни одна радио-кнопка не выбрана.

$('input[name=engine]').change(function() {
  let engine = $('input[name=engine]:checked').val();
  engine = parseInt(engine);
  $('#price').text(engine);
}).change();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="eng1" type="radio" name="engine" value="10">
<input id="eng2" type="radio" name="engine" value="999">
<span id="price">start</span>

→ Ссылка
Автор решения: Vadim

Лучше так

$('input[name=engine]').change(({currentTarget})=>{
    let engine = $(currentTarget).val();
    engine = parseInt(engine);
    $('#price').text(engine);
}).change();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="eng1" type="radio" name="engine" value="10">
<input id="eng2" type="radio" name="engine" value="999" checked>
<span id="price">start</span>

→ Ссылка