1

Certainly a stupid question, please forgive me. My customer wants decimal numbers to display with five digits. For example: 100.34 or 37.459. I was accomplishing this with val.toPrecision (5);; however, when my numbers get really small, I stop getting what I want. For example, if my number is 0.000347, it displays 0.00034700. Now, I understand why it's doing this, but what I don't know is how to get it to display 0.0003. Any thoughts?

1

4 Answers 4

5
Math.round(0.000347 * 1e4) / 1e4 

Or with toFixed:

Number.prototype.toNDigits = function (n) { return (Math.abs(this) < 1) ? this.toFixed(n - 1) : this.toPrecision(n); }; 

http://jsfiddle.net/HeQtH/6/

Sign up to request clarification or add additional context in comments.

Comments

2

Our problem is with numbers less than 1 obviously. So catch them and deal them separately

function SetPrecisionToFive(n){ return (n > 1) ? n.toPrecision (5) : (Math.round(n * 1e4) / 1e4).toString(); } 

Comments

1

You can use the toFixed method to accomplish this. For example: (0.000347).toFixed(4)

5 Comments

Will toFixed change 100.34298 to 100.34 as he wants?
jQuery for toFixed, are you kidding?
Why would you need to be using jQuery to use toFixed?
oh pal. just leave jquery once in a while :)
You should totally drop that and use jQuery.
-1

The Javascript toFixed() function will truncate small numbers to a fixed decimal precision, eg:

var num = .0000350; var result = num.toFixed(5); // result will equal .00003 

2 Comments

Now do (100.34).toFixed(5).
@katspaugh this code snippet would be conditional... not meant to cover all cases

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.