You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell判断数值是否在范围内出错求助

问题根源及修复方案

核心错误点

  • 类型不匹配:你定义的$RX_Val和$TX_Val是字符串类型(带引号的"-2.7"),而-1..-4生成的是整数数组(-1, -2, -3, -4)。字符串与整数无法直接匹配,因此-in运算符返回False。
  • 范围逻辑错误:-1..-4生成的是整数序列,但你的目标值是小数(-2.7、-3.4)。即便转成数值类型,这些小数也不在该整数数组内——你实际需要判断的是「数值是否处于-4到-1的区间」,而非是否等于数组中的整数元素。
  • 布尔值判断冗余:将布尔值转为字符串再判断'False'完全没必要,直接用原生布尔逻辑判断更简洁规范。

修复后的代码

# 直接定义为数值类型,去除引号
$RX_Val = -2.7
$TX_Val = -3.4

# 判断数值是否在[-4, -1]区间内(包含边界)
$RX_Bool = $RX_Val -ge -4 -and $RX_Val -le -1
$TX_Bool = $TX_Val -ge -4 -and $TX_Val -le -1

# 直接使用布尔逻辑判断
if (-not $RX_Bool -or -not $TX_Bool) {
    $RXTX_Data | Out-File -FilePath "E:\Port_$file_name" -Force
}

补充说明

如果$RX_Val和$TX_Val必须从字符串来源获取(比如读取文本),可先转换为数值类型再判断:

# 字符串转数值类型
$RX_Val = [double]"-2.7"
$TX_Val = [double]"-3.4"

内容的提问来源于stack exchange,提问作者snehasish nandy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 17:52:34