单位数和双位数的数字问题

Number issue with single and double digit

本文关键字:数字 问题 单位      更新时间:2023-09-26

我有一些数字的问题。目前,我有一个显示方程结果的输入框。如果数字在"-25"answers"-55"之间,则显示为绿色。如果数字在"-55"到"-65"之间,它们是橙色的。任何超出这个范围的都是红色的。我遇到的问题是数字"-3","-4"answers"-5"都在该范围之外,但它们显示为绿色。"-6"显示为橙色。这些数字应该是红色的。我错过了一些东西从我的代码,将解决这个问题吗?

谢谢!

var tb = (num1 * num2) + num3 + num4 + num5 + num6 + num7 + num8 + num9 + num10 + num11 + num13 + num12 + num14;
    if (tb > 0) {
        document.calcForm.resist.value = "+" + Math.floor(tb* 100)/100 + " dBm";
    }
    else
    {
        document.calcForm.resist.value = Math.floor(tb* 100)/100 + " dBm";
    }
       document.calcForm.resist.style.color = "green";
   if (document.calcForm.resist.value < "-26" || document.calcForm.resist.value > "-65") {
        document.calcForm.resist.style.color = "red";
   }
   else { if (document.calcForm.resist.value > "-55") {
        document.calcForm.resist.style.color = "orange";
   }}

num1 - num14是等式的不同字段

您正在比较字符串与字符串,它按字母顺序比较,而不是按值比较。因此,您需要将document.calcForm.resist.value转换为数字- parseInt(resist.value)(参见代码):

var tb = (num1 * num2) + num3 + num4 + num5 + num6 + num7 + num8 + num9 + num10 + num11 + num13 + num12 + num14;
var resist = document.calcForm.resist;
if (tb > 0) {
    resist.value = "+" + Math.floor(tb* 100)/100 + " dBm";
}
else
{
    resist.value = Math.floor(tb* 100)/100 + " dBm";
}
resist.style.color = "green";
if (parseInt(resist.value) < -26 || 
    parseInt(resist.value) > -65) {
    resist.style.color = "red";
}
else if (parseInt(resist.value) > -55) {
    resist.style.color = "orange";
}

您正在尝试将值与字符串类型变量进行比较。对于数字数据类型,不应该使用引号。当使用数值比较时,应该使用parseInt:

if (parseInt(document.calcForm.resist.value) < -26 || parseInt(document.calcForm.resist.value) > -65) {
        document.calcForm.resist.style.color = "red";
   }

这是因为document. calcform . resistance .value被作为字符串/文本处理,因为您在其中添加了"+"answers"+"dBm

document.calcForm.resist.value = "+" + Math.floor(tb* 100)/100 + " dBm";

这就是为什么"-3"> "-26"answers"-3" <" -65 " .

其余部分也一样。

考虑字符串比较:"-1"> "-10"> "-11"

而数值:-1 <-10 & lt;-11

另外,你应该去掉数字中的引号:

if (document.calcForm.resist.value < "-26" || document.calcForm.resist.value > "-65")