相关疑难解决方法(0)

理解模数运算符%

我根据以下表达式理解Modulus运算符:

7 % 5
Run Code Online (Sandbox Code Playgroud)

这将返回2,因为5进入7一次,然后给出剩下的2,但是当您将此语句反转为:

5 % 7
Run Code Online (Sandbox Code Playgroud)

这给了我5的值,让我有点困惑.虽然整个7没有进入5,但它的一部分确实如此,为什么没有剩余或剩余的正面或负面2?

如果基于7根本不进入5的事实来计算5的值,为什么剩余部分不是7而不是5?

在我对模数运算符的理解中,我觉得这里有一些我不知道的东西.

modulus

51
推荐指数
4
解决办法
10万
查看次数

C#自己完成了各个部门

当我在C#中进行分割时,它会自动向下舍入.看这个例子:

double i;
i = 200 / 3;
Messagebox.Show(i.ToString());
Run Code Online (Sandbox Code Playgroud)

这显示了一个包含"66"的消息框.然而,200/3实际上是66.66666.

有没有办法可以避免这种四舍五入并保持像66.6666667这样的数字?

c# division

30
推荐指数
4
解决办法
3万
查看次数

浮点除法返回整数

我想计算两个浮点数的平均值,但无论输入如何,我都会得到一个返回的整数.

我应该怎么做才能使这项工作?

public class Program
{
    public static float Average(int a, int b)
    {
        return (a + b) / 2;
    }

    public static void Main(string[] args)
    {
        Console.WriteLine(Average(2, 1));
    }
}
Run Code Online (Sandbox Code Playgroud)

c#

16
推荐指数
2
解决办法
1657
查看次数

使用C#舍入数字

我创建了一个认证系统,用户可以参加考试.在标记考试时,我希望返回百分比数字.所以我把正确的问题数字除以考试中的问题数量并乘以100.

我的问题是将数字四舍五入.所以如果返回的数字是76.9我的代码给了我76,其中四舍五入应该是77等.

这是我正在解决的代码行...

int userScorePercentageConvert = (int)decimal.Round((correctQuestionsForAttempt.Count / dvAttemptQuestions.Count * 100), MidpointRounding.AwayFromZero);
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何修改这段代码,以便正确地舍入

即43.4 = 44 | 67.7 = 68 | 21.5 = 22

提前谢谢了.

c# math rounding

4
推荐指数
2
解决办法
223
查看次数

为什么.Net和Excel不同意这个数学?

我从一些C#和Excel中得到了一些非常奇怪的行为......

自己完成了数学运算后,我相信excel可能会给出正确的答案,但我的数学不是很好,所以可能是.Net编译器知道我不知道的事情.

所以我们走了......

以excel表格的形式给出这些数据:

total     sale val  days    irr
2431.65   2424.56   21      5.01
Run Code Online (Sandbox Code Playgroud)

irr(单元格D2)的公式如下:

=ROUND(100 * ((A2 - B2) / B2) * (360 / C2), 2)
Run Code Online (Sandbox Code Playgroud)

当我运行这个C#时,我得到结果4.97 ...

var totalIncludingTax = 2431.65M;
var saleValue = 2424.56M;
var daysRemaining = 21;

var result = Math.Round(100.0m * ((totalIncludingTax - saleValue) / saleValue) * (360 / daysRemaining), 2);
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释我如何强迫C#/ .Net和Excel同意/如何重写这个公式以便两者同意?

c# math excel

4
推荐指数
1
解决办法
86
查看次数

划分两个数字

我正在用C#做一些自学,虽然我做了比这更复杂的项目,但我无法弄清楚问题是什么.

    private void button4_Click(object sender, EventArgs e)
    {
        int headcount = 0;
        int input = Global.inputcount;

        for (int i = 0; i < Global.inputcount; i++)
        {
            if (Global.myTextFile[i] == "F")
            {
                headcount++;
            }
        }
        float result;
        result = headcount/input; <<< that line
        button4.Text = result.ToString();
    }
Run Code Online (Sandbox Code Playgroud)

这是我的代码,它应该算多少次F的在occour myTextFile阵列,它应该除以数量与输入数量.

我调试了很多次,一切都很好,直到[那]行.尽管(人数= ~2201)和(输入= ~4321),结果为0.

我曾经和pascal一起工作,我已经用了2个月的C#所以如果有人能帮助我,我会很感激.

F 代表匈牙利语中的"Fej"="Head"

c# variables

4
推荐指数
1
解决办法
5959
查看次数

数组值不能生成双精度值

我的代码中存在问题,即使我将其指定为双精度数据类型,平均值也是整数。可能是什么问题呢?

using System;
using static System.Console;
using System.Linq;
class TemperaturesComparison
{
   static void Main()
   {
     int[] temp = new int[5];
     int i = 0;
     while (i < 5)
     {
       int eachTemp = int.Parse(ReadLine());
       if (eachTemp < -30 || eachTemp > 130) continue; //skips 
       temp[i] = eachTemp;
       i++;
     }
     
     if (temp[0] < temp[1] && temp[1] < temp[2] && temp[2] < temp[3] && temp[3] < temp[4]) WriteLine("Getting warmer");
     else if (temp[0] > temp[1] && temp[1] > temp[2] && temp[2] > temp[3] && …
Run Code Online (Sandbox Code Playgroud)

c#

4
推荐指数
1
解决办法
73
查看次数

在C#中划分以获得准确的值

如果我将150除以100,我应该得到1.5.但是当我像下面那样划分时,我得到1.0:

double result = 150 / 100;
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何获得1.5?

c# floating-point integer-division

3
推荐指数
4
解决办法
3万
查看次数

为什么var求值为int而不是double?

在下面的代码中,为什么编译器将结果变量计算为3(整数)而不是3.5(浮点数或双精度数)?

void Main()
{
    var result = 7/2;
    Console.WriteLine(result);
}
Run Code Online (Sandbox Code Playgroud)

谢谢

.net c#

2
推荐指数
2
解决办法
271
查看次数

百分比计算总是返回0

我正在计算要添加到数据网格中的百分比,但是当我报告数据时,它总是返回0,这是我做错了什么?

如果我有以下情况:变量equidadeadeInstalada的值为10,而目标为20,则concluido必须返回50,但返回0

 private void AdicionarPessoa()
 {
     string Valida = ValidaPessoa();
     if (Valida.Equals(""))
     {
         double concluido=0, falta=0;
         int quantidadeInstalada = Convert.ToInt32(ttbQuantidade.Text);
         int meta = Convert.ToInt32(ttbMetaPessoa.Text);

         concluido = (quantidadeInstalada/meta)*100;
         falta = 100-concluido;

         MessageBox.Show(concluido.Text);
     }
     else
         MessageBox.Show(Valida);
 }
Run Code Online (Sandbox Code Playgroud)

c#

2
推荐指数
1
解决办法
391
查看次数