Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Калькулятор стоимости на JavaScript: отображение числа с запятой (https://javascript.ru/forum/misc/86917-kalkulyator-stoimosti-na-javascript-otobrazhenie-chisla-s-zapyatojj.html)

Japaninfo 17.01.2026 17:32

Калькулятор стоимости на JavaScript: отображение числа с запятой
 
Калькулятор стоимости на javascript: не выводится число с запятой, - что не так!? Подскажите, плз!:-?

<!DOCTYPE html>
<head>
<title>Калькулятор на JavaScript</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

</head>
<body>
<b>Взрослые:</b><br/>
<select onchange="calc()" id="otona">
<option value="0">Выбрать</option>
<option value="5,000">2</option>
<option value="7.000">3</option>
<option value="10,000">4</option>
<option value=12.000>5</option>
</select><br/>
<div>Стоимость: <span id="result">0</span> руб.</div>
</body>

<script type="text/javascript">
function calc() {
let otona = document.getElementById("otona");
let result = document.getElementById("result");

let price = 0;
price = parseFloat(otona.options[otona.selectedIndex].value);


result.innerHTML = price;


}



</script>
</html>

Aetae 17.01.2026 21:00

Во-первых: тебя в value числа через одно с точкой и с запятой.

Во вторых: parseFloat превращает числовую строку стандартного формата в число, отбрасывая мусор после числа если он есть.
Число 7.000 - это просто число 7, нули после точки ни на что не влияют.
Число 5,000 - это число 5 плюс мусорная строка ',000', которая отбрасывается и ни на что не влияет.

Если тебе надо просто отображать - убери parseFloat и всё.
Если нужны какие-то математические действия, то либо сначала определись с форматом, потом приводи этот формат к стандартному числу, и только потом отправляй в parseFloat, либо, лучше, в value храни именно чистое число без рюшечек, а форматируй только при отображении.

Japaninfo 17.01.2026 23:07

Спасибо за разъяснение
 
Вообще то в иенах хотел вывести. В дальнейшем ещё будет один выпадающий список для суммирования с первым :)


Часовой пояс GMT +3, время: 10:50.