2016-10-24 10 views
0

У меня проблема с этим коротким скриптом. Сценарий должен показывать такие цифры, как 10 987,23 или 10 987 (2 символа после точки или нет), но показывая NaN. Что я делаю не так?Разделение и обрезка Javascript и круглые цифры

<script> 
var dohzavershen = "10 987.23456457457"; // corrected 
dohzavershen = dohzavershen.replace(/.+?(?=\D|$)/, 
    function(f) { 
    return f.replace(/(\d)(?=(?:\d\d\d)+$)/g, "$1 ") 
    ;} 
); 

document.write(Number(dohzavershen).toFixed(0)); 

<script> 
+0

Вы преобразовываете строку во что-то, что не является допустимым представлением числа, и затем пытается разобрать его на число. Вот почему вы получаете NaN. – JLRishe

+0

@JLRishe, но в этой строке есть цифры (var dohzavershen = "10 987.2345789099888"; –

+0

Это все еще недопустимое число в JavaScript. Числа не могут содержать пробелы. 'Number (" 10 987.23456457457 ")' NaN'. – JLRishe

ответ

0
var dohzavershen = "10 987.23456457457"; // corrected 

function formatter(n, k) { 
    var split = n.split('.'); 
    if (split.length > 1) { 
     split[split.length-1] = split[split.length-1].substring(0, k); 
    } 
    return k > 0 ? split.join('.') : split[0]; 
} 

formatter(dohzavershen, 2) 

Нечто подобное могло бы работать. Но учтите, что это не округляет число, а просто выбирает первые две цифры после десятичной точки. K> 0 просто для того, чтобы убедиться, что вы не получаете «1234.», вы можете обращаться с ним любым способом, который, по вашему мнению, подходит

+0

спасибо, но не сработал. И круглый важен для меня. это проблема .. этот полный код "" "var oriprice = $ origprice; \t document.write (Number (oriprice) .toFixed (0));" "" работать идеально, но не округлять число .. –

+0

Я не понимаю, как исправить мою проблему ( –

+0

Что вы имеете в виду, не работает? и я думал, что пространство между вашими номерами важно. С этим на месте попытка конвертировать его в число не будет работать. – jssridhar

 Смежные вопросы

  • Нет связанных вопросов^_^