답변:
그것들이 별도의 값을 의미한다면, 이것을 시도하십시오 :
var values = "554,20".split(",")
var v1 = parseFloat(values[0])
var v2 = parseFloat(values[1])
단일 값을 의미하는 경우 (예 : 프랑스어와 같이 절반이 0.5로 작성 됨)
var value = parseFloat("554,20".replace(",", "."));
+(string)
대신 사용할 수 있습니다 parseString(string)
. 따라서 첫 번째 예는입니다 v1 = +(values[0]); v2 = +(values[1]);
.
6.000.000
? 기능은 첫 번째 쉼표 구분 기호 만 교체
쉼표를 점으로 바꾸십시오.
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"
이 기능을 사용할 수 있습니다. 쉼표를 ''로 바꾼 다음 값을 구문 분석하고 값을 다시 쉼표로 조정합니다.
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;
}
천 단위 구분 기호와 소수점 구분 기호를 미리 알지 못한다는 점을 제외하고는 동일한 문제가있었습니다. 이를 위해 라이브러리를 작성했습니다. 여기에 관심이 있으시면 https://github.com/GuillaumeLeclerc/number-parsing