2012-03-15 4 views
4

У меня есть номер javascript 12.1542. и я хочу новую строку 12. (1542 * 60) из этой строки.получить значение после десятичной точки в javascript

Как я могу его получить. Благодаря

+1

где делает это '* 60' пришел? – Joseph

+0

Если новая строка будет '12.92520' или' 12. 12. (1542 * 60) "' (буквально)? –

+0

... или '" 12 "+ (0.1542 * 60)' – nnnnnn

ответ

0

пол, вероятно, метод, чтобы получить то, что вы хотите:

http://www.w3schools.com/jsref/jsref_floor.asp

Вы также можете использовать CEIL

http://www.w3schools.com/jsref/jsref_obj_math.asp

+5

Пожалуйста, воздержитесь от цитирования W3Schools, прочтите здесь почему. http://w3fools.com/ –

+1

Это даст вам деталь * до * десятичной точки, а не после. –

+0

@limelights: хорошая точка. https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math –

0
(12.1542).toString().replace(/\.(\d+)/, ".($1*60)"); 
// "12.(1542*60)" 
20

Yo у мог бы использовать modulus operator:

var num = 12.1542; 
console.log(num % 1); 

Однако, в связи с характером чисел с плавающей точкой, вы получите число, которое очень немного отличается. В приведенном выше примере Chrome дает мне 0.15419999999999945.

Другой (чуть больше) вариант будет использовать Math.floor, а затем вычесть результат из исходного числа:

var num = 12.1542; 
console.log(num - Math.floor(num));​ 

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

+1

Вы также можете использовать toFixed (X) исправить номер: 'console.log ((num - Math.floor (num)). toFixed (2)); ' –

0

Input здравомыслия проверяет в сторону, это должно работать:

var str = '12.1542'; 
var value = Math.floor(str) + (60 * (str - Math.floor(str))); 
+0

Вам не хватает закрывающей круглой скобки, но если вы ее добавите, это приведет к появлению' 21.251999999999967', что я не думаю, что ищет OP. –

+0

Thx. Добавлена ​​скобка. Я думаю, почти никто здесь полностью не уверен, что на самом деле хочет :-) – Sirko

0

Время в десятичные:

function toDec(sec){ 
    var itg=Math.floor(sec); 
    sec=(sec-itg)*60; 
    return itg+sec; // OR: return new String(itg+sec); 
} 
Смежные вопросы