16.07.2018, 10:20
|
Интересующийся
|
|
Регистрация: 04.05.2018
Сообщений: 22
|
|
1000=1к 120000=120к и тд
Здравствуйте, хочу в игре кликер, которая сделана на чистом js, сделать систему чисел с буквами, например 145800=145.8k, как это реализовать?
Зарание спасибо.
|
|
16.07.2018, 10:27
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,794
|
|
Проверить не меньше ли число, чем значение постфикса, разделить число на значение буквы, округлить по необходимости и добавить постфикс.
function func(val){
if(val<1000)
return val;
return (val/1000).toFixed(1)+'k';
}
alert(func(145800));
|
|
16.07.2018, 11:35
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
var val = 145800;
alert( (val+'').replace(/(\d+)\d{3}/g, '$1'+'k') );
|
|
16.07.2018, 12:33
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
j0hnik,
Если бы это были деньги, которые вы должны получить, то, мне кажется, у вас получилось бы 146k
|
|
16.07.2018, 15:31
|
Интересующийся
|
|
Регистрация: 04.05.2018
Сообщений: 22
|
|
Спасибо большое, но мне нужно и из милионами, трилионами и тд,
|
|
16.07.2018, 15:50
|
|
Профессор
|
|
Регистрация: 25.10.2016
Сообщений: 1,012
|
|
Сообщение от Владислав Star
|
из милионами, трилионами
|
а что там должно быть? kk, kkk, ...?
|
|
16.07.2018, 16:04
|
Интересующийся
|
|
Регистрация: 04.05.2018
Сообщений: 22
|
|
тысяча k
милион m
миллиард b
триллион t
ну и все
|
|
16.07.2018, 16:11
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,794
|
|
var calc = (function() {
const data = [{
postfix: 'k',
number: 1000
},
{
postfix: 'kk',
number: 1e6
}
].sort(function(a, b) {
return a.number - b.number;
});
return function(value) {
const item = data.reduce(function(r, i) {
if (value >= i.number)
r = i;
return r;
}, false);
return !item ? value : (value / item.number).toFixed(1) + item.postfix;
};
})();
alert(calc(145));
alert(calc(145800));
alert(calc(6458300));
|
|
16.07.2018, 16:33
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Владислав Star,
function fn(a) {
var n = 0;
while (a > 1000) {
a /= 1000;
n++;
}
return +a.toFixed(1) + (["", "k", "m", "b", "t"][n] || "");
}
alert(fn(145));
alert(fn(145800));
alert(fn(6458300));
|
|
16.07.2018, 18:07
|
|
Профессор
|
|
Регистрация: 25.10.2016
Сообщений: 1,012
|
|
Сообщение от рони
|
a.toFixed(1)
|
a.toFixed(1).replace(/\.0$/, '')
|
|
|
|