我根据以下表达式理解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?
在我对模数运算符的理解中,我觉得这里有一些我不知道的东西.
当我在C#中进行分割时,它会自动向下舍入.看这个例子:
double i;
i = 200 / 3;
Messagebox.Show(i.ToString());
Run Code Online (Sandbox Code Playgroud)
这显示了一个包含"66"的消息框.然而,200/3实际上是66.66666.
有没有办法可以避免这种四舍五入并保持像66.6666667这样的数字?
我想计算两个浮点数的平均值,但无论输入如何,我都会得到一个返回的整数.
我应该怎么做才能使这项工作?
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) 我创建了一个认证系统,用户可以参加考试.在标记考试时,我希望返回百分比数字.所以我把正确的问题数字除以考试中的问题数量并乘以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#和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#做一些自学,虽然我做了比这更复杂的项目,但我无法弄清楚问题是什么.
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"
我的代码中存在问题,即使我将其指定为双精度数据类型,平均值也是整数。可能是什么问题呢?
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) 如果我将150除以100,我应该得到1.5.但是当我像下面那样划分时,我得到1.0:
double result = 150 / 100;
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何获得1.5?
在下面的代码中,为什么编译器将结果变量计算为3(整数)而不是3.5(浮点数或双精度数)?
void Main()
{
var result = 7/2;
Console.WriteLine(result);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在计算要添加到数据网格中的百分比,但是当我报告数据时,它总是返回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)