So entfernen Sie Ziffern nach dezimal mit Javascript?
Ich bin mit numerischen in eine HTML-web-Seite. Das problem ist, dass ich zahlen ohne Dezimalstellen.
<!DOCTYPE html>
<html>
<head>
//Script Für Code
<script>
function copyText()
{
var mynumber=document.getElementById("field1").value;
alert(mynumber);
var mytest=parseInt(mynumber);
}
</script>
</head>
<body>
Field1: <input type="number" id="field1" value="123.124" /><br />
<br /><br />
<button onclick="copyText()">Check Number</button>
<p>A function is triggered when the button is clicked. The function copies the text in Field1 to Field2.</p>
</body>
</html>
//Ende des Codes
Treffen Sie Ihre Wahl:
mögliche Duplikate von Wie konvertiere ich eine float in einen int in Javascript?
Wenn Sie sagen, "noch nicht arbeiten" wäre es informativer zu sagen, was Sie bekommen - Fehler oder worng Wert oder was?
Du bist die erste Frage war über die Multiplikation von floating point-zahlen mit den ganzen zahlen, und jetzt ist es zum analysieren von Zeichenfolgen, so dass einige dieser Antworten irrelevant.
mögliche Duplikate von Entfernen dezimal von JavaScript Zahl
Math.round
, Math.ceil
, Math.floor
.mögliche Duplikate von Wie konvertiere ich eine float in einen int in Javascript?
Wenn Sie sagen, "noch nicht arbeiten" wäre es informativer zu sagen, was Sie bekommen - Fehler oder worng Wert oder was?
Du bist die erste Frage war über die Multiplikation von floating point-zahlen mit den ganzen zahlen, und jetzt ist es zum analysieren von Zeichenfolgen, so dass einige dieser Antworten irrelevant.
mögliche Duplikate von Entfernen dezimal von JavaScript Zahl
InformationsquelleAutor Shahzad CR7 | 2012-09-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie die Verwendung von JavaScript,
parseInt()
radix
aus irgendeinem Grund...aber ich bin neugierig, warum er nicht einfach wieder verwendet werdenparseInt()
.Ihre Antwort ist falsch: parseInt( 2.3*100 ) === 229
funktioniert wie vorgesehen. Es ist
2.3 * 100
nicht hervor, was Sie erwarten würde.InformationsquelleAutor John Conde
Vorausgesetzt, Sie wollen einfach nur zum abschneiden der Nachkommastellen (keine Rundung), hier ist eine kürzere (und weniger teure) alternative zu
parseInt()
oderMath.floor()
:Weitere Beispiele für die
bitwise OR 0
Verhalten mitint
,float
undstring
Eingang:prüfen wie zu ändern, dass in der Funktion
behandelt mehrere Arten" – also nicht die bitweise ODER-Verknüpfung 0:
10|0 => 10
,10.1|0 => 10
,"10"|0 => 10
,"10.1"|0 => 10
... Semantisch,floor()
besser geeignet ist, natürlich.Vielen Dank für diesen Hinweis. Das problem ist nicht im Ansatz per se, sondern aufgrund von floating-point-Arithmetik:
2.3 * 100 = 229.99999999999997
. Ich habe eine Verzichtserklärung auf die Antwort dennoch.Dieses Problem kann leicht gelöst werden, in einigen Fällen, indem du einen KLEINEN Bruchteil zu geben, ein wenig "push", zu zahlen - vorausgesetzt, du bist nur den Umgang mit positiven zahlen. Zum Beispiel, ((2.3+0.00000000001)*100)|0 === 230 einfach nur gut. Für alle anderen ist es lediglich so gering, dass nicht viel passiert. Ich Baue eine Simulations-engine, wo Geschwindigkeit wichtig ist, und die nicht braucht, einwandfreie und präzise, und ich denke, das funktioniert Super für meine Bedürfnisse. 😉
InformationsquelleAutor vzwick
In ES6 , können Sie builtin-Methode
trunc
aus Math-ObjektInformationsquelleAutor allsyed
InformationsquelleAutor G4uKu3_Gaurav
gibt string:
returns integer:
Daran denken, radix beim Parsen von Ganzzahlen:
toFixed
hat verschiedene Probleme (z.B.(0.595).toFixed(2)
gibt 0.59 in Firefox, 0.60 IE), besserMath.round
oder ähnliches.InformationsquelleAutor Jakub Konecki
Haben, die Sie versuchen zu bekommen Wert mit
parseInt
Versuchen :
InformationsquelleAutor Jignesh Rajput
Mathematisch, mit einem
floor
Funktion am meisten Sinn macht. Dies gibt Ihnen eine echte Zahl mit der größten bisherigen integer.grundsätzlich Vorschrift.Werten text-Typ-Feld keine Zahl, die ich denke, dass kann das Problem sein
Sind Sie sicher, dass es ist, weil Sie ' re suchen für eine Eigenschaft namens
value
und die anderen genanntenvalues
? Falls diese beiden Werte nicht definiert ist wirst duNaN
zurückgegeben. Ansonsten ist Sie mehrere Schwimmer von zwei ints und Boden-das Ergebnis wird es immer zu arbeiten.Und fügen Sie ein radix
ans7 = Math.floor(.17*parseInt(prescription.value,10)*parseInt(cost.value,10));
ich habe code so ändern, dass die num-Wert auf dezimal withoud
InformationsquelleAutor Aesthete