728x90

오늘은 JavaScript의 형변환에 대해서 알아보겠습니다. 하는 법이 있다는 것은 알고있는데 머리에 다 담고 살기는 너무 어려운 것 같습니다. 그러니 공부방에 정리해 놓아야 겠습니다.

 

 

일단 먼저 자바스크립트에서 변수를 선언하는 것부터 알아보겠습니다.

 

var 변수 = 10;

 

위에서 선언한 내용은 변수를 숫자 10으로 선언하는 것입니다.

 

var 변수 = "10";

 

얼핏보면 같은 것으로 생각 할수도 있지만 언어를 공부하신 분이라면 다들 눈치 채셨을 겁니다. 이번엔 변수를 문자열 10으로 선언하는 것입니다.

 

기존의 Java 같은 경우는 int 변수, String 변수 등 해당하는 형으로 선언하는 것이 맞지만 자바스크립트는 조금 다릅니다. 일단 모든 변수를 var로 선언 가능합니다.

 

- 문자형을 숫자형으로 변환하기

 

var 변수 = parseInt(문자);    //문자를 정수형 숫자로 변환해줌

var 변수 = parseFloat(문자);     //문자를 실수형 숫자로 변환해줌

var 변수 = Nember(문자);    //문자를 정수&실수형 숫자로 변환해줌

 

예제)

var x = "999";    //문자형 999

var y = "99.99";    //문자형 99.99

var a = parseInt(x);    //숫자형 정수 999

var b = parseInt(y);    //숫자형 정수 99

var a = parseFloat(x);    //숫자형 실수 999

var b = parseFloat(y);    //숫자형 실수 99.99

var a = Number(x);    //숫자형 정수 999

var b = Number(y);    //숫자형 실수 99.99

 

var x = "a999";    //문자형 a999

var y = "a99.99";    //문자형 a99.99

var a = parseInt(x);    //숫자형 NaN

var b = ParseInt(y);    //숫자형 NaN

var a = parseFloat(x);    //숫자형 NaN

var b = parseFloat(y);    //숫자형 NaN

var a = Number(x);    //숫자형 NaN

var b = Number(y);    //숫자형 NaN

 

※ 문자열 맨앞에 문자로 시작하면 형변환을 해도 값을 인식하지 못한다.

 

var x = "999a9";    //문자열 999a9

var y = "99.9a9";    //문자열 99.9a9

var a = parseInt(x);    //숫자형 999

var b = parseInt(y);    //숫자형 99

var a = parseFloat(x);    //숫자형 999

var b = parseFloat(y);    //숫자형 99.9

var a = Number(x);    //숫자형 NaN

var b = Number(y);    //숫자형 NaN

 

- 숫자형을 문자형으로 변환하기

 

 

var 변수 = String(숫자);    //숫자를 문자로 변환해줌

var 변수 = 숫자.toString(진법);    //숫자를 문자로 변환해줌 - 변환하면서 진법을 바꿀 수 있음

var 변수 = 숫자.toFixed(소수자리수);    //숫자를 문자로 변환해줌 - 실수형의 소수점 자리를 지정할 수 있음

var 변수 = 숫자 + "문자열";    //숫자와 문자열을 한 문자열로 더해줌

 

var x = 123;    //숫자형 123

var a = String(x);    //문자형 123

var a = x.toString();    //문자형 123

var a = x.toString(2);    //문자형 1111011(2진법)

var a = x.toString(16);    //문자형 7b(16진법)

var a = x.toFixed();    //문자형 123

var a = x.toFixed(1);    //문자형 123.0

 

var y = 99.999;    //숫자형 99.999

var a = x.toFixed();    //문자형 99

var a = x.toFixed(1);    //문자형 99.9

var a = x.toFixed(3);    //문자형 99.999

var a = x.toFixed(4);    //문자형 99.9990

 

확률을 표현해줄 때 유용하다.

 

var z = 9;    //숫자형 9

var a = a + "ElNino Torres";    //문자형 9ElNino Torres

 

이정도만 알고 있어도 자바스크립트를 사용하는데 편리할 듯 싶습니다. 추후에 기회가 되면 다른 메소드들도 알아보도록 해야겠습니다.

728x90

자바스크립트를 사용하여 숫자의 자리수(자릿수)를 구하려면 어떤 방법이 있을까요? 아래에서 숫자가 몇 자리인지를 구하는 방법을 알아봅니다.

먼저 예를들어봅니다. 만약 12 또는 10,000이라는 숫자가 있는 경우 자릿수를 아래처럼 반환되도록 가져오려면 어떻게 할까요?

Ex) 12 -> 2를 반환 (2자리)
Ex) 10,000 -> 5를 반환 (5자리)


위와같이 숫자가 몇 자리인지 알아낸 후 그 결과를 반환하는 숫자만 가져오려고 합니다...


# 자바스크립트로 숫자의 자릿수 구하기가장 간단한 방법은 숫자를 문자로 바꾼후 해당 문자의 길이를 얻는 것입니다. 이 방법은 매우 쉬운데 문자 타입인 경우 문자열의 길이를 length를 사용해 가져올 수 있다는 점을 이용합니다. 아래 코드를 봐주세요.

var num = 12345;
num = num.toString();
numDigit = num.length;
console.log(numDigit);


실행하면 5를 출력합니다. 가장 간단합니다.


# 숫자를 문자로 바꾼 후 index의 값이 존재하는지를 확인하는 방법위 방법처럼 숫자를 바꾸나 length가 아닌 해당 위치에 값이 존재하는지의 여부로 자릿수를 찾는 방법입니다.

function getDigit(num) {
  num = num.toString();
  var i=0;
  while(num[i]) { i++; };
  return i;
}


위 함수는 해당 숫자의 자릿수를 반환합니다. 그럼 아래에서 직접 숫자를 입력 후 확인해보세요.

 getDigit(num)



Result: 

 

728x90

문제 사항

위와 같이 VS Code에는

저장 시 자동으로 ES Lint 설정에 따라

JavaScript 문법 검사 후 Fix 하는 기능이 있다.

 

아니 근데 개발환경 다시 세팅하고 ES Lint 깔았더니 없다;;

 


해결 방법

명령 팔레트 > setting json 입력 > 기본 설정: 설정 열기(JSON) 선택

 

위와 같이 입력

  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true    ## ES Lint 저장 시 자동 fix 설정
  },
  "editor.formatOnSave": true,      ## document formatting 자동 fix 설정
728x90

[Advanced I/O]

Description

Reads a pulse (either HIGH or LOW) on a pin. For example, if value is HIGH, pulseIn() waits for the pin to go from LOW to HIGH, starts timing, then waits for the pin to go LOW and stops timing. Returns the length of the pulse in microseconds or gives up and returns 0 if no complete pulse was received within the timeout.

The timing of this function has been determined empirically and will probably show errors in longer pulses. Works on pulses from 10 microseconds to 3 minutes in length.

Syntax

pulseIn(pin, value)
pulseIn(pin, value, timeout)

Parameters

pin: the number of the Arduino pin on which you want to read the pulse. Allowed data types: int.
value: type of pulse to read: either HIGH or LOW. Allowed data types: int.
timeout (optional): the number of microseconds to wait for the pulse to start; default is one second. Allowed data types: unsigned long.

Returns

The length of the pulse (in microseconds) or 0 if no pulse started before the timeout. Data type: unsigned long.

Example Code

The example prints the time duration of a pulse on pin 7.

int pin = 7;
unsigned long duration;

void setup() {
  Serial.begin(9600);
  pinMode(pin, INPUT);
}

void loop() {
  duration = pulseIn(pin, HIGH);
  Serial.println(duration);
}

'홍익인간 프로젝트 > Arduino C' 카테고리의 다른 글

delayMicroseconds()  (0) 2021.03.11
[아두이노 레퍼런스] Serial.write() 함수  (0) 2021.01.31
pinMode() Function  (0) 2021.01.22
What's means F() function ?  (0) 2021.01.14
u8g2setupcpp  (0) 2020.12.25

+ Recent posts