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

Visual Studio中C#除法程序无法输出小数运算结果问题求助

问题根因

C# 语法规则中,两个int(32位整数)类型的操作数执行除法运算时,默认走整数除法逻辑,运算结果会直接截断舍弃小数部分,仅返回整数商,这就是代码无法输出带小数正确结果的核心原因。

修复方案

  • 更换结果存储类型:不要使用int类型存储除法结果,普通计算场景用double即可,涉及金额等高精度十进制计算场景选用decimal
  • 触发浮点除法逻辑:做除法运算前,显式将至少一个参与运算的整数转为对应小数类型,只要除法运算符两边有一个操作数是小数类型,就会自动执行保留小数位的浮点除法
  • 补充基础校验:增加除数非0判断、输入内容合法性判断,避免用户输入0作为除数、输入非整数字符时程序直接崩溃

修正后可运行代码

Console.WriteLine("This is a division app");
Console.Write("Please input a whole number(maximum is 2,147,483,647): ");
int number1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Please input another whole number(maximum is 2,147,483,647): ");
int number2 = Convert.ToInt32(Console.ReadLine());

// 校验除数不能为0
if (number2 == 0)
{
    Console.WriteLine("Error: Divisor cannot be 0, please restart the program.");
    return;
}

// 显式将被除数转为double类型,触发浮点除法,结果用double类型存储
double result = (double)number1 / number2;
Console.WriteLine("Is " + result + " your number?");

如果需要控制输出的小数位数,可以对结果做格式化处理,比如要固定保留2位小数,输出语句可以改成Console.WriteLine($"Is {result:0.00} your number?");。举个测试用例:输入5和2时,原代码会返回2,修正后会正确返回2.5。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:48:22