提问人:Stefan B. 提问时间:7/27/2023 最后编辑:Stefan B. 更新时间:7/27/2023 访问量:30
如何将单位的价值转换为其他单位?
How I can convert the value of a unit into an other unit?
问:
我必须将旧单位的值转换为新单位。
旧单位可以是mg/l,新单位可以是ug/ml。oldValue 为 8 mg/l。当我使用谷歌的转换器时,它向我显示该值没有改变。在我的计算中,该值从 8mg/l 变为 1 ug/ml,这绝对是错误的。
很可能我使用了不正确的公式来计算新值。
这是我目前的方法:
首先,我声明了带有对象和效力的可能单位:
private potenciesMass = {
kg: 1,
g: 1000,
mg: 1000000,
µg: 1000000000,
ug: 1000000000,
pg: 1000000000000,
};
private potenciesCapacity = {
l: 1,
dl: 10,
ml: 1000,
ul: 1000000,
nl: 1000000000,
pl: 1000000000000,
fl: 1000000000000000,
};
在下一步中,我读出每个单位的效力,并用它们计算新值。最后,我将这两个值相除。
let potencyFirstOld = this.getPotencyValue(oldUnitSplitted[0]);
let potencyFirstNew = this.getPotencyValue(newUnitSplitted[0]);
// Second Unit
let potenceySecondOld = this.getPotencyValue(oldUnitSplitted[1]);
let potenceySecondNew = this.getPotencyValue(newUnitSplitted[1]);
let firstValue = this.convertMultipleTypes(
potencyFirstOld,
potencyFirstNew,
value
);
let secondValue = this.convertMultipleTypes(
potenceySecondOld,
potenceySecondNew,
value
);
value = firstValue / secondValue;
有谁知道我如何按单位将旧值转换为新值?
编辑:新代码
private convertMultipleTypes(
potencyOld: number,
potencyNew: number,
value: number
): number {
let potenceDifference = 0;
let potence: number;
if (potencyOld < potencyNew) {
potenceDifference =
potencyNew.toString().length - potencyOld.toString().length;
potence = this.calculatePotence(potenceDifference);
return value / potence;
}
potenceDifference =
potencyOld.toString().length - potencyNew.toString().length;
potence = this.calculatePotence(potenceDifference);
return value * potence;
}
private calculatePotence(potenceDifference: number): number {
let potence = "1";
for (let i = 0; i < potenceDifference; i++) {
potence += 0;
}
return Number(potence);
}
答: 暂无答案
评论