source

어떻게 두 줄을 숫자처럼 추가할 수 있죠?

manycodes 2022. 12. 25. 09:44
반응형

어떻게 두 줄을 숫자처럼 추가할 수 있죠?

숫자만 포함하는 문자열이 두 개 있습니다.

var num1 = '20',
    num2 = '30.5';

그것들을 함께 추가할 수 있을 것이라고 예상했지만, 대신 연결되고 있습니다.

num1 + num2; // = '2030.5'

어떻게 하면 이 문자열들을 숫자로 취급할 수 있을까요?

단항 더하기 연산자를 사용하여 먼저 숫자로 변환할 수 있습니다.

+num1 + +num2;

해석용 MDN 문서내부
parseFloat용 MDN 문서

에서는 Int 되어 있기 에 10int10은 10으로 되어 있습니다.하지 않은 에서는 앞에 "javascript"가 입니다.08시 정각!!은 !!!!!!!!!!!!!

parseInt(num1, 10) + parseInt(num2, 10) //base10
parseFloat(num1) + parseFloat(num2)

단항 연산자를 사용하는 유용한 단축키는 ChaosPandion의 답변을 참조하십시오.나는 다양한 행동을 보여주기 위해 바이올린을 설치했다.

http://jsfiddle.net/EtX6G/

var ten = '10';
var zero_ten = '010';
var one = '1';
var body = document.getElementsByTagName('body')[0];

Append(parseInt(ten) + parseInt(one));
Append(parseInt(zero_ten) + parseInt(one));
Append(+ten + +one);
Append(+zero_ten + +one);

function Append(text) {
    body.appendChild(document.createTextNode(text));
    body.appendChild(document.createElement('br'));
}

다음과 같이 코드를 읽기 쉽게 하기 위해 unary plus 연산자를 사용하는 것이 좋습니다.

(+varname)

그럼, 당신의 경우:

var num1 = '20',
    num2 = '30.5';

var sum = (+num1) + (+num2);

// Just to test it
console.log( sum ); // 50.5
var result = Number(num1) + Number(num2);

현현으로 floatsparseFloat(string) 「」로integersparseInt(string)

매우 큰 두 개의 문자열을 함께 추가해야 할 경우 모든 문자열 위치에서 추가를 평가해야 합니다.

function addStrings(str1, str2){
  str1a = str1.split('').reverse();
  str2a = str2.split('').reverse();
  let output = '';
  let longer = Math.max(str1.length, str2.length);
  let carry = false;
  for (let i = 0; i < longer; i++) {
    let result
    if (str1a[i] && str2a[i]) {
      result = parseInt(str1a[i]) + parseInt(str2a[i]);

    } else if (str1a[i] && !str2a[i]) {
      result = parseInt(str1a[i]);

    } else if (!str1a[i] && str2a[i]) {
      result = parseInt(str2a[i]);
    }

    if (carry) {
        result += 1;
        carry = false;
    }
    if(result >= 10) {
      carry = true;
      output += result.toString()[1];
    }else {
      output += result.toString();
    }
  }
  output = output.split('').reverse().join('');

  if(carry) {
    output = '1' + output;
  }
  return output;
}

이를 사용하여 숫자를 추가할 수 있습니다.

var x = +num1 + +num2;

해라

var x = parseFloat(num1) + parseFloat(num2) ;

또는 필요에 따라 다음 작업을 수행합니다.

var x = parseInt(num1) + parseInt(num2) ;

http://www.javascripter.net/faq/convert2.htm

당신은 Javascript라는 책을 집어들고 싶을지도 모른다. 더글라스 크록포드의 '좋은 부품'Javascript에는 꽤 많은 양의 gotchas가 있습니다!이 책은 그것들을 명확히 하는 데 큰 도움이 된다.「 」를 참조해 주세요.

크록포드 씨의 훌륭한 에세이 Javascript: 세계에서 가장 오해받는 프로그래밍 언어

나는 항상 0을 뺐다.

num1-0 + num2-0;

단항 연산자 방법이 한 글자 적다는 것은 인정하지만, 모든 사람이 단항 연산자가 무엇인지, 또는 그것이 무엇이라고 불리는지 모를 때 어떻게 검색해야 하는지 아는 것은 아니다.

function sum(){
    var x,y,z;
    x = Number(document.getElementById("input1").value);
    y = Number(document.getElementById("input2").value);
    z = x + y;
    document.getElementById("result").innerHTML = z ;
}

숫자를 문자열로 사용하여 작업을 수행하는 경우(숫자가 64비트보다 큰 경우 등) 빅 정수 라이브러리를 사용할 수 있습니다.

const bigInt = require('big-integer')
bigInt("999").add("1").toString() // output: "1000"

여기에서는, 다음의 2개의 옵션이 있습니다.

1. 단항 플러스를 사용하여 문자열 번호를 정수로 변환할 수 있습니다.

2. 이를 위해서는 번호를 대응하는 타입(parseInt(), parseFloat() 등)으로 해석할 수도 있습니다.

.

여기서 예를 들어 보여드리겠습니다(두 숫자의 합을 구합니다).

단항 더하기 연산자 사용

<!DOCTYPE html>
<html>
<body>

<H1>Program for sum of two numbers.</H1>
<p id="myId"></p>
<script>
var x = prompt("Please enter the first number.");//prompt will always return string value
var y = prompt("Please enter the second nubmer.");
var z = +x + +y;    
document.getElementById("myId").innerHTML ="Sum of "+x+" and "+y+" is "+z;
</script>
</body>
</html>

해석 접근법 사용-

<!DOCTYPE html>
<html>
<body>

<H1>Program for sum of two numbers.</H1>
<p id="myId"></p>
<script>
var x = prompt("Please enter the first number.");
var y = prompt("Please enter the second number.");   
var z = parseInt(x) + parseInt(y);
document.getElementById("myId").innerHTML ="Sum of "+x+" and "+y+" is "+z;
</script>
</body>
</html>

사용할 수 있습니다.parseInt문자열을 번호로 해석합니다.사물의 안전을 위해 항상 통과하라.10베이스 10에서 해석하는 두 번째 인수로 지정합니다.

num1 = parseInt(num1, 10);
num2 = parseInt(num2, 10);
alert(num1 + num2);

자바 스크립트는 버그가 있기 때문에 플로트의 경우 최종 답변을 소수점 16자리 이하로 반올림해야 합니다.

예: 5 - 7.6 = - 2.5999999999999996

@cr05s19xx는 중복된 질문에 대해 다음과 같이 제안합니다.

JavaScript는 숫자와 덧셈에 관해서는 조금 웃깁니다.

다음을 제공하다

'20' - '30' = 10; // 숫자 '20' + '30' = 'tember'로 10을 반환합니다. // document.getElementById에서 반환되는 값은 문자열이므로 더하기 또는 빼기를 계속하기 전에 모두 번호로 구문 분석하는 것이 좋습니다.코드는 다음과 같습니다.

function myFunction() {
  var per = parseInt(document.getElementById('input1').value);
  var num = parseInt(document.getElementById('input2').value);
  var sum = (num / 100) * per;
  var output = num - sum;

  console.log(output);

  document.getElementById('demo').innerHTML = output;
}

function myFunction2() {
  var per = parseInt(document.getElementById('input3').value);
  var num = parseInt(document.getElementById('input4').value);
  var sum = (num / 100) * per;
  var output = sum + num;

  console.log(output);

  document.getElementById('demo1').innerHTML = output;
}

를 사용합니다.parseFloatstring을 부동소수점 번호로 해석하는 방법:

parseFloat(num1) + parseFloat(num2)

저는 이걸 제 프로젝트에 사용합니다.+ 기호를 사용하여 문자열을 숫자로 처리합니다(with_interesst 변수).

<script>
function computeLoan(){
var amount = document.getElementById('amount').value;
var interest_rate = document.getElementById('interest_rate').value;
var days = document.getElementById('days').value;
var interest = (amount * (interest_rate * .01)) / days;
var payment = ((amount / days) + interest).toFixed(2);
var with_interest = (amount * (interest_rate * .01));
var with_interesst = (+amount * (interest_rate * .01)) + (+amount);
payment = payment.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
document.getElementById('payment').innerHTML = "Target Daily = PHP"+payment;
document.getElementById('with_interesst').innerHTML = "Amount w/Interest =   PHP"+with_interesst;
}
</script>

<div name="printchatbox" id="printchatbox">
 <form id="Calculate" class="form-horizontal">
   <h2>You Can Use This Calculator Before Submit </h2>
   <p>Loan Amount: PHP<input id="amount" type="number" min="1" max="1000000"  onchange="computeLoan()"></p>
   <p>Interest Rate: <input id="interest_rate" type="number" min="0" max="100" value="10" step=".1" onchange="computeLoan()">%</p>
    <p>Term<select id="days" type="number" min="1" max="72" step=".1" onchange="computeLoan()">
    <option value="40">40 Days</option>
    <option value="50">50 Days</option>
    <option value="60">60 Days</option>
    <option value="70">70 Days</option>
    <option value="80">80 Days</option>
    <option value="90">90 Days</option>
    <option value="100">100 Days</option>
    <option value="120">120 Days</option>
    </select>
    </p>                        
   <h2 id="payment"></h2>
   <h2 id ="with_interesst"></h2>
 </form>
</div>

도움이 되었으면 좋겠다

document.getElementById(currentInputChoosen).value -= +-100;

저와 같은 문제에 부딪혔을 때 해결 방법을 찾지 못하고 SO 질문을 찾을 수 있다면, 제 경우에도 해당됩니다.

주제에서 벗어나서 미안한데, 이게 효과가 있다는 걸 방금 알았기 때문에 공유할 가치가 있을 것 같아.

이것이 더러운 회피책인지, 아니면 실제로 정당한 것인지 알 수 없습니다.

다음과 같이 사용할 수 있습니다.

var num1 = '20',
    num2 = '30.5';

alert((num1*1) + (num2*1)); //result 50.5

num1에 *1을 적용할 경우 문자열 번호를 변환합니다.

num1에 문자 또는 쉼표가 포함되어 있는 경우 NaN에 1을 곱한 값을 반환합니다.

num1이 null이면 num1은 0을 반환합니다.

잘 부탁드립니다!!!

간단한 Javascript 코드를 찾고 있으며 입력란 2개를 사용하여 2개의 값에서 숫자를 더하고 싶다면 이것을 시도해 보십시오.여기 암호가 있습니다.

    Enter the first number: <input type="text" id="num1" /><br />
    Enter the seccond number: <input type="text" id="num2" /><br />
    <input type="button" onclick="call()" value="Add"/>

    <script type="text/javascript">
    function call(){
    var q=parseInt(document.getElementById("num1").value);
    var w=parseInt(document.getElementById("num2").value);
    var result=q+w;
    }
    </script>

자세한 것은, http://informativejavascript.blogspot.nl/2012/12/javascript-basics.html 를 참조해 주세요.

언급URL : https://stackoverflow.com/questions/8976627/how-to-add-two-strings-as-if-they-were-numbers

반응형