Reputation: 126327
Give me a native (no jQuery, Prototype, etc. please) JavaScript function that converts numbers as follows:
input: 0.39, 2.5, 4.25, 5.5, 6.75, 7.75, 8.5
output: 0.39, 2.50, 4.25, 5.50, 6.75, 7.75, 8.50
E.g., in Ruby, I'd do something like this:
>> sprintf("%.2f", 2.5)
=> "2.50"
The output may be a number or a string. I don't really care because I'm just using it to set innerHTML
.
Thank you.
Upvotes: 18
Views: 29302
Reputation: 17350
input = 0.3;
output = input.toFixed(2);
// output: 0.30
A newer option, which supports rounding:
new Intl.NumberFormat('en-US', {
minimumFractionDigits: 2,
maximumFractionDigits: 2
}).format(1.005)
// Outputs: 1.01
Upvotes: 33
Reputation: 439
Alternatively you can use Intl.NumberFormat()
with { style: 'percent'}
var num = 25;
var option = {
style: 'percent'
};
var formatter = new Intl.NumberFormat("en-US", option);
var percentFormat = formatter.format(num / 100);
console.log(percentFormat);
Upvotes: 1
Reputation: 163238
You can use the toFixed()
method on Number
objects:
var array = [0.39, 2.5, 4.25, 5.5, 6.75, 7.75, 8.5], new_array = [];
for(var i = 0, j = array.length; i < j; i++) {
if(typeof array[i] !== 'number') continue;
new_array.push(array[i].toFixed(2));
}
Upvotes: 9