Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

143
Visualizações
My JavaScript financial calculation problem

We are working on financial calculations. JavaScript front-end code gives different results and C# backend gives different results. Please give me a solution to get the same result in both languages.

I mention two Cases in my example. The first case is not working and another is working.

I want results like C# code those are my expected results.

decimal TotalItemWiseRate = Convert.ToDecimal((Convert.ToDecimal(txtQuantity.Text) * Convert.ToDecimal(txtRate.Text)).ToString("0.00"));

myFunction();

function myFunction() {}

function setDecimalPoint(num) {
  var setNumber = parseFloat(num);
  if (isNaN(setNumber) || setNumber == 0) {
    return setNumber;
  } else {
    var dotcontain = (setNumber).toString().includes(".");
    if (dotcontain == true) {
      var a = (setNumber).toString().indexOf(".");
      setNumber = (setNumber).toString().substring(0, a + 4);
      return (roundNumber(setNumber, 2));
    } else {
      return (roundNumber(setNumber, 2));
    }
  }
}

document.getElementById("Case1").innerHTML = "Javascript result: " + 756.05 * 43.5;
document.getElementById("Case11").innerHTML = "Current function: " + setDecimalPoint(756.05 * 43.5);
document.getElementById("Case111").innerHTML = "Calculater result: " + 32888.175;
document.getElementById("Case1111").innerHTML = "C#/My Expected Result: " + 32888.18;

document.getElementById("Case2").innerHTML = "Javascript result: " + 6864.48 / 100;
document.getElementById("Case22").innerHTML = "Current function: " + setDecimalPoint(6864.48 / 100);
document.getElementById("Case222").innerHTML = "Calculater result: " + 68.6448;
document.getElementById("Case2222").innerHTML = "C#/My Expected Result: " + 68.64;

function roundNumber(num, scale) {
  if (!("" + num).includes("e")) {
    return +(Math.round(num + "e+" + scale) + "e-" + scale);
  } else {
    var arr = ("" + num).split("e");
    var sig = ""
    if (+arr[1] + scale > 0) {
      sig = "+";
    }
    return +(Math.round(+arr[0] + "e" + sig + (+arr[1] + scale)) + "e-" + scale);
  }
}
<p id="Case1"></p>
<p id="Case11"></p>
<p id="Case111"></p>
<p id="Case1111"></p>
<p id="Case2"></p>
<p id="Case22"></p>
<p id="Case222"></p>
<p id="Case2222"></p>

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

This single function is the simplest answer I found.

function setDecimalPoint(num) {
    if (isNaN(parseFloat(num)))
        return 0;
    else {
        var Number = parseFloat(num);
        var multiplicator = Math.pow(10, 2);
        Number = parseFloat((Number * multiplicator).toFixed(2));
        return (Math.round(Number) / multiplicator);
    }
}
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda