C# 为什么我的十进制数是负数?
以下是我如何调用以下函数:C# 为什么我的十进制数是负数?,c#,C#,以下是我如何调用以下函数: List<decimal> numbers = new List<decimal>(); numbers.Add(210m); numbers.Add(188.83m); numbers.Add(67.93m); numbers.Add(125.92m); numbers.Add(35.92m); numbers.Add(19.16m); numbers.Add(98.48m);
List<decimal> numbers = new List<decimal>();
numbers.Add(210m);
numbers.Add(188.83m);
numbers.Add(67.93m);
numbers.Add(125.92m);
numbers.Add(35.92m);
numbers.Add(19.16m);
numbers.Add(98.48m);
List<decimal> listresult = FindSumSubset(9075.12m, numbers);
列表编号=新列表();
数量。添加(210m);
增加(188.83米);
增加(67.93米);
数字。加上(125.92米);
增加(35.92米);
增加(19.16米);
增加(98.48米);
列表结果=FindSumSubset(9075.12m,数字);
************函数*
List FindSumSubset(十进制和,列表)
{
for(int i=0;i
在调试模式下运行时,十进制和
会给我一个巨大的负值,如-93435.34
这是怎么发生的?尝试进行以下更改:
if (sum - value <= 0.0m)
if(sum-value尝试进行此更改:
if (sum - value <= 0.0m)
if(sum-value你溢出了,没有检查是我的猜测。你溢出了,没有检查是我的猜测。你的else案例在for循环之外,这是一个输入错误吗?检查你的代码。在for循环之后有一个else子句。我想我修复了代码(恢复了以前的一些编辑),但现在新列表{value};
不会编译。如果你能用英语告诉我们这应该做什么,这将很容易。你的else案例在for循环之外,这是一个拼写错误吗?检查你的代码。在for循环之后有一个else子句。我想我已经修复了代码(恢复了以前的一些编辑),但现在新列表{value}
不会编译。如果你能用英语告诉我们这应该做什么,这将很容易。我认为十进制不会溢出。它是一个浮点,如果它太大而不是使用无穷大值,我认为它甚至会抛出异常。我认为十进制不会溢出。它是一个浮点,我认为它甚至会抛出异常如果它变得太大而不是使用无穷大值,则为ns。