529 Stimmen

Wie zu parsen Float mit zwei Dezimalstellen in Javascript?

Ich habe den folgenden Code. Ich möchte, dass wenn price_result gleich einer ganzen Zahl ist, sagen wir 10, dann möchte ich zwei Dezimalstellen hinzufügen. Also wäre 10 gleich 10,00. Oder wenn es gleich 10,6 ist, wäre es 10,60. Ich bin mir nicht sicher, wie ich das machen soll.

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

0voto

roqkabel Punkte 19

Sie können Ihren Preis als String speichern

Sie können verwenden Zahl(zeichenkette)

für Ihre Berechnungen.

Beispiel

Number("34.50") == 34.5

également

Number("35.65") == 35.65

Wenn Sie mit der Zahlenfunktion vertraut sind, können Sie sie verwenden.

0voto

abhinav pandey Punkte 45

@sd Kurze Antwort: Es gibt keine Möglichkeit in JS, Number Datentyp Wert mit nachgestellten Nullen nach einer Dezimalstelle haben.

Lange Antwort: Es ist die Eigenschaft von toFixed o toPrecision Funktion von JavaScript, um den String zurückzugeben. Der Grund dafür ist, dass der Datentyp Number keinen Wert wie a = 2.00 haben kann, da er immer die hinteren Nullen nach der Dezimalstelle entfernt. Dies ist die eingebaute Eigenschaft von Number Datatype. Um das oben genannte in JS zu erreichen, haben wir also 2 Möglichkeiten

  1. Entweder Daten als String verwenden oder
  2. Einigen Sie sich auf einen abgeschnittenen Wert mit der Groß-/Kleinschreibung "0" am Ende, z. B. 2,50 -> 2,5. Number Cannot have trailing zeros after decimal

-2voto

Solution for FormArray controllers 

Initialisierung von FormArray form Builder

  formInitilize() {
    this.Form = this._formBuilder.group({
      formArray: this._formBuilder.array([this.createForm()])
    });
  }

Formular erstellen

  createForm() {
    return (this.Form = this._formBuilder.group({
      convertodecimal: ['']
    }));
  }

Formularwerte in Formular-Controller setzen

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

-2voto

Arun Prasad E S Punkte 8324

Einfaches JavaScript, String zu Float:

var it_price = chief_double($("#ContentPlaceHolder1_txt_it_price").val());

function chief_double(num){
    var n = parseFloat(num);
    if (isNaN(n)) {
        return "0";
    }
    else {
        return parseFloat(num);
    }
}

-2voto

Mitre Slavchev Punkte 5

Versuchen Sie dies (siehe Kommentare im Code):

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X