Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带整数运算符的C#小数位_C#_String_Format_Decimal_Int - Fatal编程技术网

带整数运算符的C#小数位

带整数运算符的C#小数位,c#,string,format,decimal,int,C#,String,Format,Decimal,Int,所以我有这个代码: p.Value = 1; decimal avg = p.Value * 100 / 10000; string prntout = p.Key + " : " + avg.ToString(); Console.WriteLine(prntout); 但是程序输出的是0,而不是0.01。p、 值是一个int。如何修复它?将其中一个文本更改为十进制: decimal avg = p.Value * 100m / 10000; 现在,为了解释为什么会这样做: 让我们一次处理

所以我有这个代码:

p.Value = 1;
decimal avg = p.Value * 100 / 10000;
string prntout = p.Key + " : " + avg.ToString();
Console.WriteLine(prntout);

但是程序输出的是0,而不是0.01。p、 值是一个int。如何修复它?

将其中一个文本更改为十进制:

decimal avg = p.Value * 100m / 10000;
现在,为了解释为什么会这样做:

让我们一次处理一行原始操作,用1代替p值:

decimal avg = 1 * 100 / 10000; // int multiplication
decimal avg = 100 / 10000; // int division, remainder tossed out
decimal avg = (decimal) 0; // implicit cast
通过将100米改为100米,现在:

decimal avg = 1 * 100m / 10000; // decimal multiplication
decimal avg = 100m / 10000; // decimal division
decimal avg = 0.01m;

将其中一个文本更改为十进制:

decimal avg = p.Value * 100m / 10000;
现在,为了解释为什么会这样做:

让我们一次处理一行原始操作,用1代替p值:

decimal avg = 1 * 100 / 10000; // int multiplication
decimal avg = 100 / 10000; // int division, remainder tossed out
decimal avg = (decimal) 0; // implicit cast
通过将100米改为100米,现在:

decimal avg = 1 * 100m / 10000; // decimal multiplication
decimal avg = 100m / 10000; // decimal division
decimal avg = 0.01m;

表达式
p.Value*100/10000
仅使用整数类型,因此根据规则进行计算

将一个(或多个)参数更改为十进制,它将按预期执行:

p.Value * 100 / 10000m

表达式
p.Value*100/10000
仅使用整数类型,因此根据规则进行计算

将一个(或多个)参数更改为十进制,它将按预期执行:

p.Value * 100 / 10000m
尝试更改此选项:

decimal avg = p.Value * 100 / 10000;

您以前的版本使用了所有整数。

尝试更改此选项:

decimal avg = p.Value * 100 / 10000;


您以前的版本使用了所有整数。

如果p.Value是整数,您可能会丢失此行的分数:

十进制平均值=p.值*100/10000

所以你可以这样做:

十进制平均值=(十进制)p.值*100/10000


希望有帮助。

如果p.Value是一个整数,您可能会丢失此行的分数:

十进制平均值=p.值*100/10000

所以你可以这样做:

十进制平均值=(十进制)p.值*100/10000


希望有帮助。

旁注:Decimal的文字类型代码是
m
,大概是为了钱。旁注:Decimal的文字类型代码是
m
,大概是为了钱。