减法return NaN 结果
Subtraction method return NaN result
我正在尝试减去两个已经存在的数字。当我点击 cut
方法时,它返回 NaN
export class Tab2Page implements OnInit {
categories: AngularFireList<any>;
userBlnc :any // user balance in database
constructor(public af: AngularFireDatabase, public afAuth: AngularFireAuth, public router: Router,
public a: LoadingController, public m: AlertController) { }
ngOnInit(): void {
this.afAuth.authState.subscribe(async user => {
if (user) {
// Getting user balance from database
this.af.list("/users/" + user.uid + '/profile').valueChanges().subscribe((data: any) => {
this.userBlnc = data; // output array
})
} else {
this.router.navigate(['signin'])
}
})
}
// alert dialog to confirm Subtraction
async open(a) {
const alert = await this.m.create({
cssClass: 'my-custom-class',
message: "شراء فئة" + a.name + " بسعر " + a.price + " د٫ع ",
buttons: [
{
text: 'الغاء',
role: 'cancel',
handler: () => {
console.log('Confirm Cancel');
}
}, {
text: 'شراء',
cssClass: 'btn_buy',
handler: () => {
this.cut(a);
}
}
]
});
await alert.present();
}
// excite Subtraction
async cut(a) {
let fpaValue: any
if (Number(this.userBlnc[0])) {
if ( Number(a.price)>Number(this.userBlnc[0])) {
fpaValue = (Number(a.price) - Number(this.userBlnc[0]))
console.log(fpaValue)
alert(fpaValue)
} else {
alert('no balance engough')
}
}
}
}
我发现了问题。我意识到我数据库中的数字是用“阿拉伯字体”写的,所以这就是他 return NaN 结果的原因。所以我改成英文数字,他工作得很好。 :)
我正在尝试减去两个已经存在的数字。当我点击 cut
方法时,它返回 NaN
export class Tab2Page implements OnInit {
categories: AngularFireList<any>;
userBlnc :any // user balance in database
constructor(public af: AngularFireDatabase, public afAuth: AngularFireAuth, public router: Router,
public a: LoadingController, public m: AlertController) { }
ngOnInit(): void {
this.afAuth.authState.subscribe(async user => {
if (user) {
// Getting user balance from database
this.af.list("/users/" + user.uid + '/profile').valueChanges().subscribe((data: any) => {
this.userBlnc = data; // output array
})
} else {
this.router.navigate(['signin'])
}
})
}
// alert dialog to confirm Subtraction
async open(a) {
const alert = await this.m.create({
cssClass: 'my-custom-class',
message: "شراء فئة" + a.name + " بسعر " + a.price + " د٫ع ",
buttons: [
{
text: 'الغاء',
role: 'cancel',
handler: () => {
console.log('Confirm Cancel');
}
}, {
text: 'شراء',
cssClass: 'btn_buy',
handler: () => {
this.cut(a);
}
}
]
});
await alert.present();
}
// excite Subtraction
async cut(a) {
let fpaValue: any
if (Number(this.userBlnc[0])) {
if ( Number(a.price)>Number(this.userBlnc[0])) {
fpaValue = (Number(a.price) - Number(this.userBlnc[0]))
console.log(fpaValue)
alert(fpaValue)
} else {
alert('no balance engough')
}
}
}
}
我发现了问题。我意识到我数据库中的数字是用“阿拉伯字体”写的,所以这就是他 return NaN 结果的原因。所以我改成英文数字,他工作得很好。 :)