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

如何在C#中实现小数数值计算?

支持小数数值计算的代码修改方案

没问题!要实现带小数的数值计算,核心就是把原来的整数类型替换成支持小数的数值类型,同时调整对应的字符串转换方法就行,我给你详细说明:

为什么原来的代码不支持小数?

你之前用的int是整数类型,只能存储没有小数部分的数值,所以哪怕用户输入了小数,Convert.ToInt16也会直接截断小数部分,导致计算结果不符合预期。

修改后的代码(推荐用decimal,适合精确计算)

decimal类型专门用于需要精确小数表示的场景(比如金额、日常数值计算),替换后的代码如下:

// 将整数类型替换为decimal(原生支持小数存储)
decimal Var1;
decimal Var2;
decimal Uitkomst;

// 转换方法换成ToDecimal,适配小数格式的输入
Var1 = Convert.ToDecimal(txtGetal1.Text);
Var2 = Convert.ToDecimal(txtGetal2.Text);

// 运算逻辑和原来一致,现在可以处理小数相乘了
Uitkomst = Var1 * Var2;

// 输出时可以指定小数位数(比如"N2"保留两位),让结果展示更友好
txtUitkomst.Text = $"Uitkomst: {Uitkomst.ToString("N2")}";

可选:用double类型(适合科学计算)

如果你的场景不需要超高精度,也可以用double类型,代码逻辑类似:

double Var1;
double Var2;
double Uitkomst;

Var1 = Convert.ToDouble(txtGetal1.Text);
Var2 = Convert.ToDouble(txtGetal2.Text);

Uitkomst = Var1 * Var2;
txtUitkomst.Text = $"Uitkomst: {Uitkomst.ToString("N2")}";

额外优化:处理非法输入

为了避免用户输入非数字内容导致程序崩溃,建议加上简单的异常处理:

try
{
    decimal Var1 = Convert.ToDecimal(txtGetal1.Text);
    decimal Var2 = Convert.ToDecimal(txtGetal2.Text);
    decimal Uitkomst = Var1 * Var2;
    txtUitkomst.Text = $"Uitkomst: {Uitkomst.ToString("N2")}";
}
catch (FormatException)
{
    txtUitkomst.Text = "请输入有效的数字(支持小数)!";
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 07:02:44