次のようなコードがあります。もしprice_resultが整数に等しいなら、10としましょう、それで私は小数点以下2桁を加えたいと思います。したがって、10は10.00になります。または、10.6と等しい場合は10.60になります。これを行う方法がわからない。
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
あなたは toFixed() を使うことができます
var twoPlacedFloat = parseFloat(yourString).toFixed(2)
toFixed
を使用すると、常に値を文字列として返します。これは時々コードを複雑にします。それを避けるために、あなたは数のための代替方法を作ることができます。
Number.prototype.round = function(p) {
p = p || 10;
return parseFloat( this.toFixed(p) );
};
そして使用する:
var n = 22 / 7; // 3.142857142857143
n.round(3); // 3.143
または単に:
(22/7).round(3); // 3.143
パフォーマンスが必要な場合(ゲームのように):
Math.round(number * 100) / 100
ParseFloatの約100倍の速さです(number.toFixed(2))。
数値を返すには、括弧をもう1層追加します。清潔に保ちます。
var twoPlacedFloat = parseFloat((10.02745).toFixed(2));
lodashからのceilはおそらく最高です
_.ceil("315.9250488",2)
_.ceil(315.9250488,2)
_.ceil(undefined,2)
_.ceil(null,2)
_.ceil("",2)
数字でも動作します、そしてそれは安全です
あなたの目的がパースであり、あなたの入力がリテラルである場合、あなたはfloat
とtoFixed
がそれを提供しないことを期待するでしょう、それでこれを提供する2つの簡単な関数があります:
function parseFloat2Decimals(value) {
return parseFloat(parseFloat(value).toFixed(2));
}
function parseFloat2Decimals(value,decimalPlaces) {
return parseFloat(parseFloat(value).toFixed(decimalPlaces));
}
四捨五入したくない場合は、以下の機能を使用してください。
function ConvertToDecimal(num) {
num = num.toString(); //If it's not already a String
num = num.slice(0, (num.indexOf(".")) + 3); //With 3 exposing the hundredths place
alert('M : ' + Number(num)); //If you need it back as a Number
}
その価値のために:10進数は10進数です、あなたはどちらか他の値に丸めるかしないかのどちらかです。内部的には、浮動小数点の関節の取り扱いと取り扱いの原則に従って、それは小数点以下の桁数に近似します。表示する桁数に関係なく、内部的に10進数(浮動小数点、JSでは2倍)のままです。
表示用に表示するには、文字列変換によって表示の精度を自由に選択できます。プレゼンテーションは表示上の問題であり、保管上の問題ではありません。
私のために働く解決策は以下の通りです
parseFloat(value)
Solution for FormArray controllers
FormArrayフォームビルダーを初期化する
formInitilize() {
this.Form = this._formBuilder.group({
formArray: this._formBuilder.array([this.createForm()])
});
}
フォームを作成
createForm() {
return (this.Form = this._formBuilder.group({
convertodecimal: ['']
}));
}
フォーム値をフォームコントローラに設定
setFormvalues() {
this.Form.setControl('formArray', this._formBuilder.array([]));
const control = <FormArray>this.resourceBalanceForm.controls['formArray'];
this.ListArrayValues.forEach((x) => {
control.Push(this.buildForm(x));
});
}
private buildForm(x): FormGroup {
const bindvalues= this._formBuilder.group({
convertodecimal: x.ArrayCollection1? parseFloat(x.ArrayCollection1[0].name).toFixed(2) : '' // Option for array collection
// convertodecimal: x.number.toFixed(2) --- option for two decimal value
});
return bindvalues;
}