Не удается изменить строку (innerHTML) на число с помощью Javascript

#javascript #numbers #innerhtml #parseint #parsefloat

Вопрос:

Я не могу изменить строку с innerHTML на число с помощью javascript, внутренний формат элемента похож на 1.2.34, я пробовал функции parseFloat, parseInt и Number, они работают, но только для строки(innerHTML), которая в форме 1.23 означает наличие только одной десятичной точки, но в моем случае у меня более 1, 2 десятичных знаков и я не могу изменить их в js. ПОЖАЛУЙСТА, помогите мне решить эту проблему.

Комментарии:

1. Это семвер (номер версии)? Если это так, то существуют библиотеки JavaScript , предназначенные для работы с ними.

2. на самом деле, это просто ввод, который вы можете сказать, я получаю его из элемента на странице, это не номер версии

3. является ли целью то, что вы можете затем добавить время к этому числу? Можете ли вы привести пример использования того, как вы используете этот innerHTML?

4. Я использую этот внутренний язык для вычисления среднего значения за разное время, он работает с числами, такими как 1.23, но у меня есть внутренний язык, такой как 1.2.34

5. Итак, ваш формат HH.MM.SS (часы, минуты, секунды)? Вы хотите преобразовать это в десятичные часы (например, 1.30.36 = 1.51 часа)?

Ответ №1:

parseFloat, parseInt может применяться только для текста или числа, имеющего правильный десятичный формат. пример : 100,1.24,100.24,100.254 но вы пытаетесь использовать 1.2.4, который не является допустимым десятичным форматом, когда вы пытаетесь проанализировать этот недопустимый формат с помощью int или float, JS будет рассматривать как недопустимые аргументы для parseInt или parseFloat.

Поэтому я рассматриваю innerHTML как hh.mm.ss в качестве фрагмента кода, как показано ниже

 var time = '1.24.3';   // input string from innerHtml
var timearray = time.split('.'); // split it with .

// You can multiply hours to seconds or minutes
var totalminutes = ( timearray[0]) * 60   ( timearray[1]);

//then you can add the every time and divide by n
-->You logic goes here
 

Комментарии:

1. хорошо, спасибо, но есть ли какой-нибудь способ, которым я могу изменить номер своего результата на строку, подобную этой?

2. Можете ли вы конкретно объяснить, каков ваш вклад и ожидаемый результат ?

3. Я кодирую таймер секундомера, поэтому внутренний текст, который я получаю, имеет форму 1.2.4, и я хочу использовать его для получения среднего значения, а для этого мне нужно сначала преобразовать его в число

4. @Nimish поскольку ваш ввод был мне не очень понятен, я изменил приведенный выше раздел ответов с помощью фрагмента кода, надеюсь, это вам поможет.