@bro1807

Как изменить последнюю цифру числа?

Как изменить последнюю цифру числа? Число может быть рандомным, например 365 или 0.12345 Если конкретно, то нужно увеличить или уменьшить на 1. Например из 0.123 сделать 0.124 а из 11.1 сделать 11.2 Количество знаков после запятой неизвестно.
  • Вопрос задан
  • 1370 просмотров
Решения вопроса 1
Ni55aN
@Ni55aN
function incrementChar(number){
    let inc = String(number).replace(/\d/g, '0').replace(/(.*)\d/,'$11');
    return Number(number) + Number(inc);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
BRAGA96
@BRAGA96
var number = 0.1396943977836136;
// Сделаем из числа строку
var string = String(number);
// Возьмем последний символ строки, сделаем из него число и добавим 1
// Это будет готовый последний символ
var increment = Number(string[string.length - 1]) + 1;
// Удалим последний символ из строки и добавим готовый символ
var result = string.slice(0, -1) + increment;
console.log(result); //> 0.1396943977836137


Этот код в виде функции:
function incrementDigits(number) {
	var string = String(number);
	return Number(string.slice(0, -1) + (Number(string[string.length - 1]) + 1));
}


incrementDigits(0.521512); //> 0.521513
Ответ написан
Тупо.. без учёта того, что там может быть девятка на конце
$n = 0.123;
 
$last_dig = substr($n, strlen($n)-1);
$last_dig++;

$n = substr($n, 0, strlen($n)-1) . $last_dig;
echo $n;
Ответ написан
@lloydbanks
var nums = '0.123AAA45SSFFF6789'
var arrNums = nums.match(/\d/g).map(Number);
var arrLength = arrNums.length-1;

arrNums.splice(arrLength, 1, arrNums[arrLength] + 1);

console.log(arrNums); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 10]
Ответ написан
Комментировать
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
UPD по замечанию из комментов:
function plus1 (num) {
		var str_num = String(num),
		dot;
		if((dot = str_num.indexOf('.') + 1) > 0) {
			return Number((num * Math.pow(10,str_num.length - dot)) + 1) / Math.pow(10,str_num.length - dot)
		} else {
			return num + 1;
		}
	}

	console.log(plus1(0.12345));
	console.log(plus1(0.1));
	console.log(plus1(111));
	console.log(plus1(111.11));
Ответ написан
var a = 1.99;
var b = (a+'').split('.')
if(b[1]){
var c='';
for(var i = 0; i < b[1].length-1;i++){
c+=0;
}
c=0+'.'+c+1;
var res = parseFloat((a + +c).toFixed(b[1].length))
}
else res = a + 1;
console.log(res)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы