数値から「0.」XXX%を取り除き、パーセンテージにする最良の方法は何ですか?数値がintである場合はどうなりますか?
var number1 = 4.954848;
var number2 = 5.9797;
$(document).ready(function() {
final = number1/number2;
alert(final.toFixed(2) + "%");
});
割合は次のとおりです。
(number_one / number_two) * 100
派手なものは必要ありません:
var number1 = 4.954848;
var number2 = 5.9797;
alert(Math.floor((number1 / number2) * 100)); //w00t!
((portion/total) * 100).toFixed(2) + '%'
最良の解決策は、en
が英語ロケールです:
fraction.toLocaleString("en", {style: "percent"})
まあ、パーセントを与える除算の結果である0.123456
のような数値がある場合は、100を掛けてから丸めるか、例のようにtoFixed
を使用します。
Math.round(0.123456 * 100) //12
これを行うjQueryプラグインを次に示します。
jQuery.extend({
percentage: function(a, b) {
return Math.round((a / b) * 100);
}
});
使用法:
alert($.percentage(6, 10));
Numeral.js は、数値、通貨、パーセンテージをフォーマットでき、ローカライズをサポートできる、私が作成したライブラリです。
numeral(0.7523).format('0%') // returns string "75%"
var percent = Math.floor(100 * number1/number2-100)+ '%';
@xtremの答えは良いですが、toFixed
とmakePercentage
が一般的に使用されていると思います。 2つの関数を定義すれば、どこでもそれを使用できます。
const R = require('ramda')
const RA = require('ramda-adjunct')
const fix = R.invoker(1, 'toFixed')(2)
const makePercentage = R.when(
RA.isNotNil,
R.compose(R.flip(R.concat)('%'), fix, R.multiply(100)),
)
let a = 0.9988
let b = null
makePercentage(b) // -> null
makePercentage(a) // -> 99.88%