我有下面的代码。我想让它这样,如果price_result等于一个整数,比如10,然后我想加两位小数点后。所以10就是10.00。 如果等于10.6,就是10.60。不知道该怎么做。

price_result = parseFloat(test_var.split('$')[1].slice(0,-1));

当前回答

它的价值:一个十进制数,是一个十进制数,你可以四舍五入到某个其他值。在内部,它将根据浮点算术和处理规则近似一个小数。它在内部保持一个十进制数(浮点数,在JS中是double),无论你想用多少位数字来显示它。

要将其表示为显示,可以通过字符串转换选择显示的精度。表示是一个显示问题,而不是存储问题。

其他回答

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;
  }

我有其他的解。

你可以使用round()来代替toFixed()

var twoPlacedFloat = parseFloat(yourString).round(2)

如果你不想四舍五入,请使用下面的函数。

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    
}

要返回一个数字,添加另一层圆括号。保持清洁。

var twoPlacedFloat = parseFloat((10.02745).toFixed(2));

您可以将价格存储为字符串

你可以使用 (字符串)

用于计算。

例子

Number("34.50") == 34.5

also

Number("35.65") == 35.65

如果你对数字函数感到舒服,你可以使用它。