学习任重道远啊 2023-05-06 14:58 采纳率: 65.2%
浏览 46
已结题

C# for循环,头一次遇到,真奇怪

好奇怪啊,用for循环写的这样的等式一直计算出50个,其实实际计算是51,我打印出来,有好多数都有很长的小数点,想请教一下,该如何将那些很长的小数点去除?

img

  • 写回答

2条回答 默认 最新

  • 家海Memory 2023-05-06 16:27
    关注

    关于相加出现多余小数你可以参考这篇问答:https://bbs.csdn.net/topics/300023952
    里面有许多人曾经讨论过这个问题可供参考

    当然 你也可以把double改为decimal
    所有有小数点计算时,尽可能用更高精度的 decimal 型,初始化decimal类型时需要使用m/M后缀,不用的话会被被认为隐式的将double类型转换为decimal类型而报错。(float也是,加f/F后缀)
    下面是改变之后的正确代码:

     decimal a = -110;
                decimal b = 110;
                decimal c = 4.4m;
                int n = 0;
                List<decimal> list = new List<decimal>();
                for (decimal i = a; i <= b; i+=c)
                {
                    
                    Convert.ToDouble(i).ToString("0.00");
                    list.Add(i);
                    n++;
                }
                for (int i = 0; i < list.Count; i++)
                {
                    Console.WriteLine(list[i]);
                }
                Console.WriteLine("我是N"+n);
                Console.ReadLine();
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月2日
  • 已采纳回答 7月25日
  • 修改了问题 5月6日
  • 创建了问题 5月6日