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

输入任意数字,计算其与13的差值始终显示-13,求技术解答

为什么计算数字与13的差值总是得到-13?

这种情况我之前帮同事排查过好几次,大概率是你的代码根本没用到输入的数字,而是用了固定的0(或者等效于0的默认值)去减13,所以结果永远是-13。下面列几个最常见的原因,你可以对照自己的代码排查:

  • 输入变量未正确赋值:比如你定义了变量,但没把用户输入的内容存进去。举个Python的错误例子:

    # 错误:直接把变量设为0,没获取输入
    num = 0
    result = num - 13
    print(result)  # 永远输出-13
    

    正确的做法应该是把用户输入的内容赋值给变量:

    num = int(input("请输入数字:"))
    result = num - 13
    print(result)
    
  • 输入未转换为数值类型:如果你的语言是弱类型(比如JavaScript),直接用字符串类型的输入去做减法,空字符串或者无效输入会被自动转为0。比如:

    // 错误:没把输入转成数字
    let num = prompt("请输入数字");
    console.log(num - 13); // 如果输入为空,结果就是0-13=-13
    

    解决办法是先把输入转为数值:

    let num = Number(prompt("请输入数字"));
    console.log(num - 13);
    
  • 函数参数传递错误:如果你用了函数封装逻辑,但调用时没传输入的数字,函数用了默认的0作为参数。比如:

    // 错误:函数调用时传了默认的0
    public static int subtract13(int num) {
        return num - 13;
    }
    
    public static void main(String[] args) {
        System.out.println(subtract13(0)); // 结果永远是-13
    }
    

    正确的调用应该是把用户输入的数值传进去:

    import java.util.Scanner;
    
    public static int subtract13(int num) {
        return num - 13;
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int inputNum = scanner.nextInt();
        System.out.println(subtract13(inputNum));
    }
    

总的来说,核心问题就是参与计算的变量没有真正接收用户输入的数值,而是用了默认的0值。你可以重点检查输入获取、变量赋值、参数传递这几个环节,确认输入的数字确实被用到了计算里。

内容的提问来源于stack exchange,提问作者Octavian Niculescu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:48:43