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
'programing' 카테고리의 다른 글
동일한 열 값을 가진 특정 행을 mysql 테이블에서 삭제하려면 어떻게 해야 합니까? (0) | 2022.11.03 |
---|---|
JavaScript에서 문자열의 대시 후 모든 항목 가져오기 (0) | 2022.11.03 |
SQL 데이터베이스에서 위도와 경도를 사용하여 가장 가까운 위치를 찾는 방법은 무엇입니까? (0) | 2022.11.03 |
MySQL 서버 시작 오류 'PID 파일을 업데이트하지 않고 서버가 종료되었습니다' (0) | 2022.11.03 |
'상수'를 공유하기 위한 Java 정적 필드가 있는 인터페이스 (0) | 2022.10.25 |