#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 поскольку ваш ввод был мне не очень понятен, я изменил приведенный выше раздел ответов с помощью фрагмента кода, надеюсь, это вам поможет.