gpt4 book ai didi

angular - typescript ,固定。类型 'string' 不可分配给类型 'number'

转载 作者:太空狗 更新时间:2023-10-29 17:22:10 24 4
gpt4 key购买 nike

       distanceX = ((this.frontclickedX  - originX) / originX).toFixed(2);
distanceY = (-(this.frontclickedY - originY) / originY).toFixed(2);
let distanceZ: number = (-(this.frontclickedY - originY) / originY).toFixed(2);

当我计算 distanceZ 时我的浏览器抛出一个错误:

Type 'string' is not assignable to type 'number'.

前两行完美地工作,但第三行并没有真正工作。如您所见,它甚至与 distanceY 的计算完全相同。我试着先 parseFloat() 它。但随后它开始提示我只能将字符串解析为 float ,而我没有提供。

我现在很困惑,所以非常感谢一些帮助或解决方案!

提前致谢!

编辑:我试图简化我的代码。将距离设为私有(private)并添加 setter 和 getter。

private _distanceX: number;
private _distanceY: number;
private _distanceZ: number;

get distanceZ(): number {
return this._distanceZ;
}
set distanceZ(value: number) {
this._distanceZ = value;
} ...
calculateBadgeDistance(): void{
this.distanceX = (5.001).toFixed(2);
this.distanceY = (5.001).toFixed(2);
this.distanceZ = (5.001).toFixed(2);
}

现在我在所有 3 行上都遇到了错误。

最佳答案

toFixed() 方法将数字转换为字符串。您必须将变量解析为数字:

let distanceZ:number = parseFloat((-(this.frontclickedY - originY) / originY).toFixed(2));

或者,暂时存储字符串,稍后解析

let distanceZTxt:string = (-(this.frontclickedY - originY) / originY).toFixed(2);
let distanceZ:number = parseFloat(distanceZTxt);

关于angular - typescript ,固定。类型 'string' 不可分配给类型 'number',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39956988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com