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

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

当前回答

我已经为我的案子试过了,它会工作得很好。

var multiplied_value = parseFloat(given_quantity*given_price).toFixed(3);

样例输出:

9.007

其他回答

我有其他的解。

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

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

试试这个(参见代码中的注释):

function fixInteger(el) {
    // this is element's value selector, you should use your own
    value = $(el).val();
    if (value == '') {
        value = 0;
    }
    newValue = parseInt(value);
    // if new value is Nan (when input is a string with no integers in it)
    if (isNaN(newValue)) {
        value = 0;
        newValue = parseInt(value);
    }
    // apply new value to element
    $(el).val(newValue);
}

function fixPrice(el) {
    // this is element's value selector, you should use your own
    value = $(el).val();
    if (value == '') {
        value = 0;
    }
    newValue = parseFloat(value.replace(',', '.')).toFixed(2);
    // if new value is Nan (when input is a string with no integers in it)
    if (isNaN(newValue)) {
        value = 0;
        newValue = parseFloat(value).toFixed(2);
    }
    // apply new value to element
    $(el).val(newValue);
}
parseFloat(parseFloat(amount).toFixed(2))

你必须解析两次。第一次是将字符串转换为浮点数,然后将其固定为两个小数(但toFixed返回一个字符串),最后再次解析它。

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

@sd 简单的回答:在JS中没有办法有数字数据类型的值与小数后面的零。

长回答:它是JavaScript的属性toFixed或toPrecision函数,用于返回String。这样做的原因是数字数据类型不能有像a = 2.00这样的值,它总是会删除小数后面的零,这是数字数据类型的内置属性。因此,要在JS中实现上述目标,我们有两个选择

要么使用数据作为字符串,要么 同意在ex2.50 -> 2.5结尾使用大小写为“0”的截断值。