C# 将货币价值除以零?

C# 将货币价值除以零?,c#,sql-server,accounting,C#,Sql Server,Accounting,我无法将货币价值除以“0”。 我建立会计软件,资产缩水 例如,我有一个值1000000。 我会把它分成三份 1000000/3=33333 问题是,我想这样做: 步骤1:1000000-33333= 666666666666666666666666667 步骤2:6666666666667- 33333333333333333=3333333333333333333 4 第三步:3333333 4- 333333,33333333333333333333333 = 000000000000000

我无法将货币价值除以“0”。 我建立会计软件,资产缩水

例如,我有一个值1000000。 我会把它分成三份

1000000/3=33333

问题是,我想这样做:

步骤1:1000000-33333= 666666666666666666666666667

步骤2:6666666666667- 33333333333333333=3333333333333333333 4

第三步:3333333 4- 333333,33333333333333333333333 = 00000000000000000001

示例代码

decimal value = 100;
int divider = 3;
decimal x = value / divider;

for (int i = 0; i < divider; i++)
{
    value = value - x;
}
十进制值=100;
整数除法器=3;
十进制x=值/除法器;
对于(int i=0;i
结果,值=000000000000000000000 1

是的,这是个问题。 这是一个货币价值,我会除以零

我试着在每一步(在循环中)使用像“math.floor”这样的数学方法。 结果值为-2。 我知道我可以用“数学地板”的方法得到最终的结果。但我没有,因为我想一步一步地(在循环中)做 我该怎么办


谢谢

< P>你应该考虑把你的1/3乘以1, 2或3,而不是减去以前的数字。像这样的方法应该会奏效:

var originalAmount = 1000000d;
var thirdOfOriginal = originalAmount / 3;

Console.WriteLine("Original number ... {0}", originalAmount);
Console.WriteLine("Original - 1/3 .... {0}", (originalAmount - (thirdOfOriginal * 1)));
Console.WriteLine("Original - 2/3 .... {0}", (originalAmount - (thirdOfOriginal * 2)));
Console.WriteLine("Original - 3/3 .... {0}", (originalAmount - (thirdOfOriginal * 3)));

// Output
// Original number ... 1000000
// Original - 1/3 .... 666666.666666667
// Original - 2/3 .... 333333.333333333
// Original - 3/3 .... 0
这可以更一般地写为:

private static List<decimal> GetAmounts(decimal originalNumber, int numberOfDivisions)
{
    var amounts = new List<decimal>();

    if (numberOfDivisions > 0)
    {
        var fraction = originalNumber / numberOfDivisions;

        for (int i = 1; i <= numberOfDivisions; i++)
        {
            amounts.Add(originalNumber - (fraction * i));
        }
    }

    return amounts;
}
private static List GetAmounts(十进制原始数,int numberOfDivisions)
{
var金额=新列表();
如果(numberOfDivisions>0)
{
var分数=原始数/部门数;

对于(int i=1;我想你应该发布你的代码。不知道你使用哪种货币,但我会以英镑为例。如果我有100英镑,并想将其分成3份,我就不得不剩下1便士,或者给别人额外的一便士。你到底想达到什么目的?@DavidG我想做会计中的资产折旧哪种方法是正确的你在用?你在用减法平衡还是直线法?@DavidG我用直线法