bourne2077
bourne2077

Reputation: 171

How do you round down to one decimal, even if it ends with a 0 in JavaScript?

I have a product page that is fetching products information and displaying the products on the page. The API returns three price points. I have to add them up and display the price rounded down to one decimal. I have a solution already working, but it only works if it's not a whole number.

22.7312 returns 22.7, but 22.0 returns 22. I would like to always show one decimal, even if it's a zero. This is my current solution. How can I change it so that it shows the one decimal, even if it's a zero?

Math.floor(
    (parseFloat(product.price1['regionalPrice'])
      + parseFloat(product.price2['marketPrice'])
      + parseFloat(product.price3['localPrice'])
    ) * 10) / 10

Upvotes: 0

Views: 1134

Answers (2)

Marxys
Marxys

Reputation: 138

You need to format your float result with the .toFixed(x) method.

Here is a full code sample for this:

const p1 = parseFloat(product.price1['regionalPrice']);
const p2 = parseFloat(product.price2['marketPrice']);
const p3 = parseFloat(product.price3['localPrice']);

const price = Math.floor((p1 + p2 + p3) * 10) / 10;
const displayPrice = price.toFixed(1);

Upvotes: 2

dessei
dessei

Reputation: 11

You could try rounding your numbers with the number.toFixed() function where you pass 1 as a function argument. I tried it and
num = 22; num = nums.toFixed(1); console.log(num)
prints out 22.0. Hope that this is what you were looking for ^^

Upvotes: 1

Related Questions