Insert a point in the penultimate item of the variable

1

I have a variable with the value "14013" and I'm trying to insert a dot to get the following value "140.13" in my loop.

for (var i in teste) {
  for (var j in (teste2[teste[i]])) {
       valorFinal[j] = resultado1 + resultado2;
       //valorFinal[j] precisa ter um ponto antes do penultimo item 
  }
}
    
asked by anonymous 18.07.2016 / 01:59

2 answers

1
for (i in teste) {
    for (j in (teste2[teste[i]])) {
        valorFinal[j] = (resultado1 + resultado2);
        var res = valorFinal[j].toString();
        var dec = Math.floor(res.length - 2);
        var resp = res.substring(0, dec) + "." + res.substring(dec);
    }
}

I think this will solve.

    
18.07.2016 / 02:08
2

Try this, I created a function insertDot() , which receives as an argument the number you want:

var a = 14013;

function insertDot(a){
  a = a.toString(); // Transforma em String 
  var beforeDot = a.substring(0, a.length-2); // Captura do primeiro ao penúltimo caractere
  var afterDot = a.substring(a.length-2, a.length); // Captura o penúltimo ao último caractere
  return parseFloat(beforeDot + "." + afterDot); // retorna um NÚMERO com com o ponto inserido
}

document.body.innerHTML += insertDot(a);
document.body.innerHTML += "<br>";
document.body.innerHTML += insertDot(a) * 2;

So, just do:

function insertDot(a){
  a = a.toString();
  return parseFloat(a.substring(0, a.length-2)+"."+a.substring(a.length-2, a.length));
}
for (var i in teste) {
  for (var j in (teste2[teste[i]])) {
       valorFinal[j] = resultado1 + resultado2;
       valorFinal[j] = insertDot(valorFinal[j]);
  }
}

With a second argument that gets the position of the point, as Sergio suggested:

var a = 14013;

function insertDot(a, pos){
  a = a.toString(); 
  if(pos > 0){
     a = parseFloat(a.substring(0, pos) + "." + a.substring(pos, a.length));
  }else{
     a = parseFloat(a.substring(0, a.length+pos) + "." + a.substring(a.length+pos, a.length));
  }
  return a;
}

document.body.innerHTML += insertDot(a, 1);
document.body.innerHTML += "<br>";
document.body.innerHTML += insertDot(a, -2);
document.body.innerHTML += "<br>";
document.body.innerHTML += insertDot(a, -2) * 2;
    
18.07.2016 / 02:37