使用溢出处理读取并添加两次(数值数学)[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用溢出处理读取并添加两次(数值数学)[关闭]相关的知识,希望对你有一定的参考价值。

我只是简单地尝试一些东西,但我与next在一起:我从4位数字的控制台中得到2个数字,它会像小时一样添加自己。任务说:加2个小时(用户两个小时都加),我需要它像这样工作

1030 + 0825 = 8:55

hour1 1033 + hour2 0835 = 19:08

我知道使用DateTime很容易。但是,我不能在这里使用DateTime。解决方案应使用类似我当前代码的算术运算。

 static void Main(string[] args)
    {
        int horaEntrada, horaEntrada2, hora, minut, hora2,minut2, sumamin,sumahora;
        Console.WriteLine("Entra hora");
        horaEntrada = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Entra hora 2");
        horaEntrada2 = Convert.ToInt32(Console.ReadLine());

        hora = horaEntrada / 100;
        minut = horaEntrada  % 100;
        hora2 = horaEntrada2 / 100;
        minut2 = horaEntrada2 % 100;
        sumamin = minut + minut2;
        sumahora = hora + hora2;
        if (sumamin > 59)
            {
                sumamin = 0;
                if (sumahora > 23) sumahora = 0;
                else sumahora++;
            }
            else sumamin++;


        Console.WriteLine($"la suma de las horas {horaEntrada} + {horaEntrada2} es {sumahora}:{sumamin}");
    }
答案

好,所以我自己尝试了一下,您的代码遇到了2个问题:

问题

  • [分钟超过60分钟时,您将分钟重置为0,而不是从中减去60。所以我将sumamin = 0;更改为sumamin -= 60;
if (sumamin >= 60)
{
  sumamin -= 60;
  if (sumahora > 23)
    sumahora = 0;
  else sumahora++;
}

第二件事是,如果剩余分钟数少于10,则不会添加0,所以我这样做:这将在前面添加0以获取正确的格式。

string resultMin = "0";
  if (sumamin.ToString().Length == 1) {
    resultMin = $"0{sumamin.ToString()}";
}

希望有帮助:))

以上是关于使用溢出处理读取并添加两次(数值数学)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

备战数学建模27 & 科研必备 -Python之数值型数据处理numpy

Angular,body添加css溢出:如果模态打开则隐藏并在关闭时将其删除?

Java异常处理之数字溢出问题

MySQL 数值类型溢出处理

SwiftUI 上的 NavigationLink 两次推送视图

python不是用来处理整数溢出的吗?