使用 parseFloat() 解析浮点数
Parse a floated number with 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: '.' }
];
我在 ng-repeat 中循环我的键来构建像这样的计算器:
<div class="cKeys">
<div class="cKey" ng-repeat="item in ctrl.keys" ng-click="ctrl.modifyValue(item)">{{item.label}}</div>
</div>
当我点击一个键时,我调用了一个以被点击的对象作为参数的函数。
modifyValue(obj: any) {
let str = this.currentValue + obj.key;
this.currentValue = parseFloat(str);
}
在这个函数中,我构建了一个字符串并用 parseFloat()
解析它以获得一个数字。 this.currentValue
是一个输入的 ng-model,应该显示我的号码。
因此,当我单击以下键时:1
、2
、5
、.
(点)和 3
,我希望数字我输入的是125.3
,但是有1253
没有意义?我想,当我使用 parseFloat()
时,它也应该向我显示浮点数。怎么了?
'.'
一添加就被删除,因为 parseFloat('125.') === 125
。
维护两个变量。一个包含解析的结果,一个包含连接的字符串。始终解析连接的字符串:
modifyValue(obj: any) {
this.concatStr += obj.key;
this.currentValue = parseFloat(this.concatStr);
}
作为@T.J。 Crowder 在评论中指出,这种方法意味着你应该 select '.'
,如果你再 select 后面的另一个数字,它就不会是 "forgotten"。
嗨,我有以下代码:
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: '.' }
];
我在 ng-repeat 中循环我的键来构建像这样的计算器:
<div class="cKeys">
<div class="cKey" ng-repeat="item in ctrl.keys" ng-click="ctrl.modifyValue(item)">{{item.label}}</div>
</div>
当我点击一个键时,我调用了一个以被点击的对象作为参数的函数。
modifyValue(obj: any) {
let str = this.currentValue + obj.key;
this.currentValue = parseFloat(str);
}
在这个函数中,我构建了一个字符串并用 parseFloat()
解析它以获得一个数字。 this.currentValue
是一个输入的 ng-model,应该显示我的号码。
因此,当我单击以下键时:1
、2
、5
、.
(点)和 3
,我希望数字我输入的是125.3
,但是有1253
没有意义?我想,当我使用 parseFloat()
时,它也应该向我显示浮点数。怎么了?
'.'
一添加就被删除,因为 parseFloat('125.') === 125
。
维护两个变量。一个包含解析的结果,一个包含连接的字符串。始终解析连接的字符串:
modifyValue(obj: any) {
this.concatStr += obj.key;
this.currentValue = parseFloat(this.concatStr);
}
作为@T.J。 Crowder 在评论中指出,这种方法意味着你应该 select '.'
,如果你再 select 后面的另一个数字,它就不会是 "forgotten"。