어떻게 두 줄을 숫자처럼 추가할 수 있죠?
숫자만 포함하는 문자열이 두 개 있습니다.
var num1 = '20',
num2 = '30.5';
그것들을 함께 추가할 수 있을 것이라고 예상했지만, 대신 연결되고 있습니다.
num1 + num2; // = '2030.5'
어떻게 하면 이 문자열들을 숫자로 취급할 수 있을까요?
단항 더하기 연산자를 사용하여 먼저 숫자로 변환할 수 있습니다.
+num1 + +num2;
해석용 MDN 문서내부
parseFloat용 MDN 문서
에서는 Int 되어 있기 에 10int 의 10은 10으로 되어 있습니다.하지 않은 에서는 앞에 "javascript"가 입니다.0
8시 정각!!은 !!!!!!!!!!!!!
parseInt(num1, 10) + parseInt(num2, 10) //base10
parseFloat(num1) + parseFloat(num2)
단항 연산자를 사용하는 유용한 단축키는 ChaosPandion의 답변을 참조하십시오.나는 다양한 행동을 보여주기 위해 바이올린을 설치했다.
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);
현현으로 floats
parseFloat(string)
「」로integers
parseInt(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;
}
를 사용합니다.parseFloat
string을 부동소수점 번호로 해석하는 방법:
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
'source' 카테고리의 다른 글
변수가 클래스인지 확인하는 방법 (0) | 2022.12.25 |
---|---|
현재 시각을 YYY-MM-DD HH로 취득하는 방법:MI: Sec.Millisecond 포맷(Java) (0) | 2022.12.25 |
HTML 파일의 JavaScript 위치 (0) | 2022.12.25 |
클래스 JSON을 시리얼화 하는 방법 (0) | 2022.12.25 |
읽기 전용 목록 또는 수정 가능한 목록을 읽습니다.Net4.0 (0) | 2022.12.25 |