web-dev-qa-db-ja.com

数字を割合にする

数値から「0.」XXX%を取り除き、パーセンテージにする最良の方法は何ですか?数値がintである場合はどうなりますか?

var number1 = 4.954848;
var number2 = 5.9797;

$(document).ready(function() {    
    final = number1/number2;
    alert(final.toFixed(2) + "%");
});
90
user1040259

割合は次のとおりです。

(number_one / number_two) * 100

派手なものは必要ありません:

var number1 = 4.954848;
var number2 = 5.9797;

alert(Math.floor((number1 / number2) * 100)); //w00t!
178
Neal
((portion/total) * 100).toFixed(2) + '%'
50
xtrem

最良の解決策は、enが英語ロケールです:

fraction.toLocaleString("en", {style: "percent"})

26
Liron Shapira

まあ、パーセントを与える除算の結果である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));
16
Alex Turpin

Numeral.js は、数値、通貨、パーセンテージをフォーマットでき、ローカライズをサポートできる、私が作成したライブラリです。

numeral(0.7523).format('0%') // returns string "75%"

numeral.js

2
adamwdraper

var percent = Math.floor(100 * number1/number2-100)+ '%';

1
Tomas Kubes

@xtremの答えは良いですが、toFixedmakePercentageが一般的に使用されていると思います。 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%​​​​​
0
Scott Ming