Javascript에서 소수점 이하 두 자리로 부동 소수점을 구문 분석하는 방법은 무엇입니까?
다음 코드가 있습니다. price_result가 정수와 같으면 10이라고 말하면 소수점 이하 두 자리를 추가하고 싶습니다. 따라서 10은 10.00입니다. 또는 10.6과 같으면 10.60이됩니다. 방법을 잘 모르겠습니다.
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
toFixed () 를 사용 하여 그렇게 할 수 있습니다.
var twoPlacedFloat = parseFloat(yourString).toFixed(2)
를 사용 toFixed
하면 항상 값을 문자열로 반환합니다. 때로는 코드가 복잡해집니다. 이를 피하기 위해 Number에 대한 대체 방법을 만들 수 있습니다.
Number.prototype.round = function(p) {
p = p || 10;
return parseFloat( this.toFixed(p) );
};
그리고 사용 :
var n = 22 / 7; // 3.142857142857143
n.round(3); // 3.143
또는 간단히 :
(22/7).round(3); // 3.143
게임과 같은 성능이 필요한 경우 :
Math.round(number * 100) / 100
parseFloat (number.toFixed (2))보다 약 100 배 빠릅니다.
http://jsperf.com/parsefloat-tofixed-vs-math-round
숫자를 반환하려면 괄호의 다른 레이어를 추가하십시오. 깨끗하게 유지합니다.
var twoPlacedFloat = parseFloat((10.02745).toFixed(2));
당신의 목표는 구문 분석 할 수 있으며, 귀하의 의견은 문자 그대로있을 경우에, 당신은을 기대 float
하고 toFixed
그래서 여기를 제공하기 위해 두 가지 간단한 기능은 다음 사항을 제공하지 않습니다 :
function parseFloat2Decimals(value) {
return parseFloat(parseFloat(value).toFixed(2));
}
function parseFloat2Decimals(value,decimalPlaces) {
return parseFloat(parseFloat(value).toFixed(decimalPlaces));
}
lodash에서 ceil은 아마 최고입니다
_.ceil("315.9250488",2)
_.ceil(315.9250488,2)
_.ceil(undefined,2)
_.ceil(null,2)
_.ceil("",2)
숫자로도 작동하며 안전합니다.
@ sd 짧은 답변 : JS에서 소수점 뒤에 0이 오는 숫자 데이터 유형 값을 갖는 방법은 없습니다.
긴 답변 : 문자열을 반환하는 JavaScript 의 속성 toFixed
또는 toPrecision
기능입니다. 그 이유는 Number 데이터 유형이 a = 2.00과 같은 값을 가질 수 없기 때문에 항상 소수점 다음에 오는 0을 제거하기 때문입니다. 이것은 Number Datatype의 내장 특성입니다. JS에서 위를 달성하기 위해 우리는 두 가지 옵션이 있습니다
반올림하지 않으려면 아래 기능을 사용하십시오.
function ConvertToDecimal(num) {
num = num.toString(); //If it's not already a String
num = num.slice(0, (num.indexOf(".")) + 3); //With 3 exposing the hundredths place
alert('M : ' + Number(num)); //If you need it back as a Number
}
그 가치는 다음과 같습니다. 십진수는 십진수입니다. 다른 값으로 반올림하거나하지 않습니다. 내부적으로 부동 소수점 arthetic 및 처리 규칙에 따라 소수점 이하 자릿수에 가깝습니다. 표시하려는 자릿수에 상관없이 내부적으로 10 진수 (JS에서 부동 소수점, 이중)를 유지합니다.
표시를 위해 표시하려면 문자열 변환으로 원하는대로 표시의 정밀도를 선택할 수 있습니다. 프레젠테이션은 저장 문제가 아니라 표시 문제입니다.
이것을 시도하십시오 (코드의 주석 참조) :
function fixInteger(el) {
// this is element's value selector, you should use your own
value = $(el).val();
if (value == '') {
value = 0;
}
newValue = parseInt(value);
// if new value is Nan (when input is a string with no integers in it)
if (isNaN(newValue)) {
value = 0;
newValue = parseInt(value);
}
// apply new value to element
$(el).val(newValue);
}
function fixPrice(el) {
// this is element's value selector, you should use your own
value = $(el).val();
if (value == '') {
value = 0;
}
newValue = parseFloat(value.replace(',', '.')).toFixed(2);
// if new value is Nan (when input is a string with no integers in it)
if (isNaN(newValue)) {
value = 0;
newValue = parseFloat(value).toFixed(2);
}
// apply new value to element
$(el).val(newValue);
}
플로팅 할 간단한 자바 스크립트 문자열
var it_price = chief_double($("#ContentPlaceHolder1_txt_it_price").val());
function chief_double(num){
var n = parseFloat(num);
if (isNaN(n)) {
return "0";
}
else {
return parseFloat(num);
}
}
나를 위해 일하는 해결책은 다음과 같습니다.
parseFloat(value)
Solution for FormArray controllers
FormArray 양식 빌더 초기화
formInitilize() {
this.Form = this._formBuilder.group({
formArray: this._formBuilder.array([this.createForm()])
});
}
양식 작성
createForm() {
return (this.Form = this._formBuilder.group({
convertodecimal: ['']
}));
}
양식 값을 양식 컨트롤러로 설정
setFormvalues() {
this.Form.setControl('formArray', this._formBuilder.array([]));
const control = <FormArray>this.resourceBalanceForm.controls['formArray'];
this.ListArrayValues.forEach((x) => {
control.push(this.buildForm(x));
});
}
private buildForm(x): FormGroup {
const bindvalues= this._formBuilder.group({
convertodecimal: x.ArrayCollection1? parseFloat(x.ArrayCollection1[0].name).toFixed(2) : '' // Option for array collection
// convertodecimal: x.number.toFixed(2) --- option for two decimal value
});
return bindvalues;
}
다른 해결책이 있습니다.
round()
대신에 사용할 수 있습니다toFixed()
var twoPlacedFloat = parseFloat(yourString).round(2)
참고 URL : https://stackoverflow.com/questions/4435170/how-to-parse-float-with-two-decimal-places-in-javascript
'development' 카테고리의 다른 글
URL에서 % 2C 란 무엇입니까? (0) | 2020.02.26 |
---|---|
curl을 사용하여 파일과 함께 POST 데이터 업로드 (0) | 2020.02.26 |
줄 바꿈 문자를 만드는 방법? (0) | 2020.02.25 |
CSS로 배경 이미지의 크기를 설정 하시겠습니까? (0) | 2020.02.25 |
PowerShell이 Windows에서 Cygwin 셸을 교체 할 준비가 되셨습니까? (0) | 2020.02.25 |