Hallo Ich folge Code haben:Parse eine schwebten Zahl mit parseFloat()
keys = [
{ label: '1', key: '1' },
{ label: '2', key: '2' },
{ label: '3', key: '3' },
{ label: '4', key: '4' },
{ label: '5', key: '5' },
{ label: '6', key: '6' },
{ label: '7', key: '7' },
{ label: '8', key: '8' },
{ label: '9', key: '9' },
{ label: 'C', key: 'Delete' },
{ label: '0', key: '0' },
{ label: '.', key: '.' }
];
I Schleife meine Schlüssel in einem ng-repeat so etwas wie ein Rechner so zu bauen:
<div class="cKeys">
<div class="cKey" ng-repeat="item in ctrl.keys" ng-click="ctrl.modifyValue(item)">{{item.label}}</div>
</div>
Wenn ich auf einen Schlüssel klicke, rufe ich eine Funktion mit dem angeklickten Objekt als Parameter auf.
modifyValue(obj: any) {
let str = this.currentValue + obj.key;
this.currentValue = parseFloat(str);
}
In dieser Funktion baue ich einen String und analysieren es mit parseFloat()
eine Reihe zu bekommen. Die this.currentValue
ist ein ng-Modell eines Eingangs, wo meine Nummer angezeigt werden soll. So
wenn ich Folgeschlüssel klicken: 1
, 2
, 5
, .
(Punkt) und 3
erwarte ich, dass die Zahl 125.3
in meinem Eingang, aber es gibt 1253
ohne den Punkt? Ich dachte, wenn ich die parseFloat()
benutze sollte es mir auch Floatetnummern zeigen. Was ist los mit dir?
'125. wird als 125 geparst und dann verketten Sie 3 dazu – mplungjan
Das '.' wird gelöscht, sobald es angehängt ist, als 'parseFloat ('125.') === 125 '. – sdgluck
Ausführlichere Hilfe erhalten Sie, wenn Sie einen runnable [mcve] in die Frage einfügen, indem Sie Stack Snippets verwenden (die '<>' Schaltfläche in der Symbolleiste). –