programing

JavaScript에서 문자열을 float로 변환하는 방법

itsource 2022. 11. 3. 22:03
반응형

JavaScript에서 문자열을 float로 변환하는 방법

데이터그램에서 두 값을 구문 분석하려고 합니다.필드는 숫자이며 쉼표(예: 554,20)가 있는 경우 쉼표 뒤의 숫자를 얻을 수 없습니다.해봤어요parseInt그리고.parseFloat어떻게 해야 되지?

값이 다른 경우는, 다음과 같이 시험합니다.

var values = "554,20".split(",")
var v1 = parseFloat(values[0])
var v2 = parseFloat(values[1])

1개의 값을 의도하는 경우(프랑스어로 1/2은 0.5로 표기)

var value = parseFloat("554,20".replace(",", "."));

당신은 이것을 시도해 본 적이 있나요?:p

var str = '3.8';ie
alert( +(str) + 0.2 );

+(string)는 문자열을 플로트로 주조합니다.

핸디!

문제를 해결하려면 다음과 같은 작업을 수행할 수 있습니다.

var floatValue = +(str.replace(/,/,'.'));

쉼표를 점으로 바꿉니다.

554개만 반환됩니다.

var value = parseFloat("554,20")

554가 반환됩니다.20:

var value = parseFloat("554.20")

최종적으로는, 다음의 조작을 간단하게 실시할 수 있습니다.

var fValue = parseFloat(document.getElementById("textfield").value.replace(",","."))

그걸 잊지 말게.parseInt()는 정수 해석에만 사용해야 합니다(부동소수점 없음).고객님의 경우 554개만 반송됩니다.또한 float 상에서 parseInt()를 호출하면 번호가 반올림되지 않고 플로어(가장 가까운 하위 정수)가 됩니다.


코멘트에서 Pedro Ferreira의 질문에 답하기 위한 확장 예:

텍스트 필드에 다음과 같이 수천 개의 구분 도트가 포함되어 있는 경우1.234.567,99그것들은 다른 것과 함께 사전에 제거될 수 있다.replace:

var fValue = parseFloat(document.getElementById("textfield").value.replace(/\./g,"").replace(",","."))

String 개체를 이렇게 확장하면...

String.prototype.float = function() { 
  return parseFloat(this.replace(',', '.')); 
}

..이렇게 실행할 수 있습니다.

"554,20".float()
> 554.20

점에서도 동작합니다.

"554.20".float()
> 554.20

typeof "554,20".float()
> "number"

@GusDeCool 또는 1,000개 이상의 구분자를 교체하려는 다른 사용자는 regex 글로벌 교체 방법 중 하나입니다./foo/g.그것만은 기억해..메타캐릭터이므로 이스케이프하거나 괄호로 묶어야 합니다.\.또는[.])1가지 옵션은 다음과 같습니다.

var str = '6.000.000';
str.replace(/[.]/g,",");

이 기능을 사용할 수 있습니다.콤마를 '로 대체하고 값을 parseFlaot한 후 값의 쉼표를 다시 조정합니다.

function convertToFloat(val) {
        if (val != '') {
            if (val.indexOf(',') !== -1)
                val.replace(',', '');
            val = parseFloat(val);
            while (/(\d+)(\d{3})/.test(val.toString())) {
                val = val.toString().replace(/(\d+)(\d{3})/, '$1' + ',' + '$2');
            }
        }
        return val;
    }

임의의 문자열에서 float를 해석하는 방법을 찾고 있는 경우

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

function extractFloat(text) {
  const match = text.match(/\d+((\.|,)\d+)?/)
  return match && match[0]
}

extractFloat('some text with float 5.25') // 5.25

해라

let str ="554,20";
let float = +str.replace(',','.');
let int = str.split(',').map(x=>+x);

console.log({float,int});

나도 똑같은 문제가 있었는데, 내가 미리 천의 구분자와 소수점 구분자가 무엇인지 알지 못했다.나는 이것을 하기 위해 도서관을 쓰게 되었다.관심이 있으신 분은 https://github.com/GuillaumeLeclerc/number-parsing 를 참조해 주세요.

언급URL : https://stackoverflow.com/questions/642650/how-to-convert-string-into-float-in-javascript

반응형