[javascript] 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에서 위를 달성하기 위해 우리는 두 가지 옵션이 있습니다

  1. 데이터를 문자열로 사용하거나
  2. 2.50-> 2.5의 끝에서 ‘0’으로 값이 잘 리도록 동의합니다.
    소수점 이하 자릿수 0을 가질 수 없습니다