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

C# BMI计算器运行报System.FormatException输入字符串格式错误如何解决

异常原因

Unhandled exception. System.FormatException: Input string was not in a correct format

这个异常由int.Parse()方法抛出,触发原因有两点:

  • 输入内容不符合整数格式:比如输入身高时填了1.75这类带小数点的小数、输入了字母/符号、甚至直接回车留空,int.Parse()只能处理纯整数字符串,遇到不符合规则的输入就会直接抛出格式异常
  • 业务逻辑不匹配:你的身高、体重变量都定义为double双精度浮点类型,本身就需要支持小数输入,用int.Parse()做解析本身就不符合BMI计算的业务场景(身高大多是1点几米的小数、体重也常存在小数位)
修复方案

基础修复(适配浮点输入)

直接把int.Parse替换为double.Parse,适配身高体重的小数输入需求,修改对应两行代码即可:

Console.WriteLine("Enter Your Weight In kg");
double userWeight = double.Parse(Console.ReadLine());

Console.WriteLine("Enter Your Height In Meters");
double userHeight = double.Parse(Console.ReadLine());

优化方案(增加输入容错)

用double.TryParse()替代Parse方法,非法输入时给出友好提示,避免程序直接崩溃,完整优化后代码如下:

using System;

namespace L2._7_BodyMassIndex
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Body Mass Index Calculator.");
            Console.WriteLine("Enter Your Name");
            string userName = Console.ReadLine();

            Console.WriteLine("Enter Your Weight In kg");
            double userWeight;
            while (!double.TryParse(Console.ReadLine(), out userWeight) || userWeight <= 0)
            {
                Console.WriteLine("输入不合法,请输入大于0的有效体重数值:");
            }

            Console.WriteLine("Enter Your Height In Meters");
            double userHeight;
            while (!double.TryParse(Console.ReadLine(), out userHeight) || userHeight <= 0)
            {
                Console.WriteLine("输入不合法,请输入大于0的有效身高数值:");
            }

            double userHeightSqrd = Math.Pow(userHeight,2);
            double userBmi = (userWeight / userHeightSqrd);

            Console.WriteLine("============");
            Console.WriteLine(userName);
            Console.WriteLine("============");
            Console.WriteLine("Weight: " + userWeight);
            Console.WriteLine("Height: " + userHeight);
            Console.WriteLine("BMI: " + Math.Round(userBmi, 2));
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:24:01