Ik heb de volgende code. Ik zou het graag willen hebben dat als Prijs_Result gelijk is aan een geheel getal, laten we zeggen 10, dan wil ik twee decimalen toevoegen. Dus 10 zou 10.00 zijn.
Of als het gelijk is aan 10.6 zou 10.60 zijn. Niet zeker hoe dit te doen.
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
Antwoord 1, Autoriteit 100%
U kunt tofixed () gebruiken om dat te doen
var twoPlacedFloat = parseFloat(yourString).toFixed(2)
Antwoord 2, Autoriteit 7%
Als u prestaties nodig hebt (zoals in games):
Math.round(number * 100) / 100
Het is ongeveer 100 keer zo snel als par-uplat (nummer.tofixed (2))
http://jsperf.com/parfloat-tofixed-vs-math-round
Antwoord 3, Autoriteit 5%
Wanneer u toFixed
gebruikt, retourneert het altijd de waarde als een tekenreeks. Dit compliceert soms de code. Om dat te voorkomen, kunt u een alternatieve methode voor nummer maken.
Number.prototype.round = function(p) {
p = p || 10;
return parseFloat( this.toFixed(p) );
};
en gebruik:
var n = 22 / 7; // 3.142857142857143
n.round(3); // 3.143
of eenvoudig:
(22/7).round(3); // 3.143
Antwoord 4, Autoriteit 2%
Voeg een nummer weer toe, voeg een andere laag haakjes toe. Houdt het schoon.
var twoPlacedFloat = parseFloat((10.02745).toFixed(2));
Antwoord 5
Als uw doel is om te ontleden, en uw invoer misschien een letterlijke is, verwacht u een float
en toFixed
ZAL DAT NIET ZELF Twee eenvoudige functies om dit te verstrekken:
function parseFloat2Decimals(value) {
return parseFloat(parseFloat(value).toFixed(2));
}
function parseFloat2Decimals(value,decimalPlaces) {
return parseFloat(parseFloat(value).toFixed(decimalPlaces));
}
Antwoord 6
Ceil uit Laagash is waarschijnlijk de beste
_.ceil("315.9250488",2)
_.ceil(315.9250488,2)
_.ceil(undefined,2)
_.ceil(null,2)
_.ceil("",2)
werkt ook met een cijfer en het is veilig
Antwoord 7
Gebruik hieronder de functie als u niet wilt afronden.
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
}
Antwoord 8
Voor wat de moeite waard is: een decimaal getal, is een decimaal getal, u rond het om met een andere waarde of niet. Intern zal het een decimale fractie benaderen volgens de regel van drijvende punt arthmetische en hantering. Het blijft een decimaal getal (drijvend punt, in JS A Double) intern, ongeacht hoe u veel cijfers waarmee u het wilt weergeven.
Om het voor het display te presenteren, kunt u de precisie van het display kiezen voor wat u maar wilt op stringconversie. Presentatie is een weergaveprobleem, geen opslag.
Antwoord 9
@sd
Kort antwoord: Er is geen enkele manier in JS om een aantal datatype-waarde te hebben met trailing nullen na een decimaal.
Long Antwoord: het eigendom van toFixed
of toPrecision
FUNCTION VAN JAVASCRIPt, om de tekenreeks te retourneren. De reden hiervoor is dat het aantal datatype geen waarde kan hebben zoals A = 2,00, het zal altijd de trailing nullen verwijderen na het decimaal, dit is het ingebouwde eigenschap van nummergegevenatype. Dus om het bovenstaande in JS te bereiken, hebben we 2 opties
- Gebruik gegevens als een string of
- Ga akkoord met de afgeknotte waarde met Case ‘0’ aan het einde Ex 2.50 – & GT; 2.5.
Antwoord 10
U kunt .tofixed () gebruiken voor voor floatwaarde 2 cijfers
exampale
let newValue = parseFloat(9.990000).toFixed(2) //output 9.99
Antwoord 11
Ik heb dit voor mijn geval geprobeerd en het zal goed werken.
var multiplied_value = parseFloat(given_quantity*given_price).toFixed(3);
Voorbeelduitgang:
9.007
Antwoord 12
U kunt uw prijs opslaan als een string
u kunt gebruiken
Nummer (string)
voor uw berekeningen.
Voorbeeld
Number("34.50") == 34.5
ook
Number("35.65") == 35.65
Als u zich op uw gemak voelt met de cijferfunctie, kunt u ermee gaan.
Antwoord 13
Simple JavaScript, string om te zweven:
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);
}
}
Antwoord 14
Probeer dit (zie opmerkingen in de 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);
}
Antwoord 15
Solution for FormArray controllers
Initialiseer de formulier Form Builder
formInitilize() {
this.Form = this._formBuilder.group({
formArray: this._formBuilder.array([this.createForm()])
});
}
Maak een formulier
createForm() {
return (this.Form = this._formBuilder.group({
convertodecimal: ['']
}));
}
Set Form-waarden in formuliercontroller
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;
}
Antwoord 16
Ik heb andere oplossing.
U kunt round()
gebruiken om dat in plaats daarvan te doen toFixed()
var twoPlacedFloat = parseFloat(yourString).round(2)
Antwoord 17
De oplossing die voor mij werkt, is de volgende
parseFloat(value)