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

如何用C#循环以递增方式输出0.1到0.100的小数?

解决C#循环递增打印小数的问题

你的代码问题出在**i++的行为**:i++会给decimal变量直接加1,而不是你需要的递增0.01,所以0.1加1后直接变成1.0,完全偏离了预期序列。另外,0.100和0.1在decimal中是相等的,原循环条件i<=0.100只会执行一次,根本无法遍历到后续数值。

正确实现方式

如果你想实现从0.01到1.00(对应你描述的0.1、0.2……0.10、0.11……0.100,推测是小数点位数表述误差),每次递增0.01的打印需求,有两种稳妥的写法:

方法1:用整数循环避免精度问题

整数运算不会有浮点数精度误差,转换为decimal更可靠:

for (int num = 1; num <= 100; num++)
{
    decimal value = num / 100m;
    // 用F2格式化确保输出两位小数,符合你要的0.01、0.02...1.00格式
    Console.WriteLine(value.ToString("F2"));
}

方法2:直接用decimal累加0.01

如果你坚持从0.1开始遍历到1.00,每次加0.01:

for (decimal i = 0.1m; i <= 1.00m; i += 0.01m)
{
    Console.WriteLine(i.ToString("F2"));
}

关键注意点

  • 替换i++为i += 0.01m,明确每次递增的步长是0.01
  • 用ToString("F2")格式化输出,保证小数位数统一,避免0.1显示为0.1而不是0.10
  • 修正循环上限:如果你要到1.00,就写i <= 1.00m,0.100和0.1是同一个值,无法作为有效上限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:40:35