如何在C#中除十进制数?

如何在C#中除十进制数?,c#,sql-server-2008,pos,C#,Sql Server 2008,Pos,我正在使用C#为一家医疗商店开发POS应用程序。根据商店的要求,他们有两种产品 没有变化的产品(没有子产品,即一瓶悬浮液或婴儿食品) 有变化的产品(有子产品,即一包药片->有3条->每条药片包含10片) 对于有变化的产品,我有变化标准(每种产品在每个包装中都有特定数量的板条,每个板条都有特定数量的片剂)。我对它们进行了分级管理。i、 e.A级(针对母产品)、B级(针对子项,例如包装中的条状物)、C级(针对条状物中的单个片剂)。我管理过类似的产品,以加快销售业务 根据客户行为,我希望管理销售操作,

我正在使用C#为一家医疗商店开发POS应用程序。根据商店的要求,他们有两种产品

  • 没有变化的产品(没有子产品,即一瓶悬浮液或婴儿食品)
  • 有变化的产品(有子产品,即一包药片->有3条->每条药片包含10片)
  • 对于有变化的产品,我有变化标准(每种产品在每个包装中都有特定数量的板条,每个板条都有特定数量的片剂)。我对它们进行了分级管理。i、 e.A级(针对母产品)、B级(针对子项,例如包装中的条状物)、C级(针对条状物中的单个片剂)。我管理过类似的产品,以加快销售业务

    根据客户行为,我希望管理销售操作,这样,如果客户购买一包平板电脑,而该包包含3个条带,每个条带还包含10个平板电脑,我希望在我的数据库中完全捕获这种库存减少

    为此,我在SQLServer中有一个单独的表。该表包含两种产品(有和无变化)。该表还包含一个名为IsParent的单独字段,用于跟踪产品。IsParent字段存储0表示无变化的产品,存储1表示有变化的产品。该表还包含基于变化的产品的每个级别的单独字段和每个级别的单独数量字段

    假设我有10包XYZ平板电脑,其B级标准为3片(每包3片),C级标准为10片(每片10片),那么我现有的库存如下:

    10 X 3=30条

    30 X 10=300片

    现在,如果客户从这10个包中购买了一条,那么我如何从整个秸秆中减去1条,即30条?我怎样才能从整个茎中减去这10片(1条),即300片

    到目前为止,我一直在做以下手动减法:

    B级(一条或两条,每条10片)

    采购数量是客户已购买的数量。该数量除以B级标准,即3。如果客户购买2条,则
    2/3=0.66
    ;如果客户购买1条,则
    1/3=0.33
    。如果另一位客户将从同一产品中购买一条或两条,那么由于小数点的原因,在几笔交易后,库存金额将变得棘手

    我也在做同样的操作,如果客户购买的平板电脑少于10个,这对我来说是相当棘手的。我需要一些方法来管理库存减少,这样,如果在一次销售操作中
    30条
    中有2条售出,那么剩余库存量将
    29.34或29.3
    。后来,在同一产品的另一个销售操作中,如果另一个客户购买了一个条带,那么条带的库存量应该变成
    29
    ,而不是
    29.01
    ,因为这
    0.1
    给我带来了问题


    我将以同样的方式管理平板电脑的库存减少。我希望有人能帮我找到一个简单但可靠的解决方案。任何帮助都将不胜感激。

    库存管理系统通常通过将“产品”(即您销售的产品)的概念从“单位”(即您保存库存的产品)中抽象出来来处理这类问题

    在您的情况下,您将按平板电脑或条带的单位管理库存(无论库存的适用原子表示是什么),然后创建与这些库存单位相关的产品

    产品可能与库存单位存在1:1的关系(例如,产品“1条XYZ(10片)”=库存中的1条),或者产品可能是捆绑产品(例如,产品“一包XYZ(30片)”=库存中的3条)

    您的库存成本是使用您选择的任何方法(先进先出法、加权平均法等)进行管理的,您的产品都有自己的(或多个)价格点

    当产品“一包XYZ(30片)”售出时,您的库存将减少3倍
    “剥离”单位(及其相关的销售成本已计算),您的收入将以“一包XYZ(30片)”产品的价格增长。

    我尝试将十进制数字除以C,然后得到输出。。下面的节目

    namespace ConsoleApp1
    {
       class Program
       {
          static void Main(String[] args)
          {
            Decimal dividend = 1234.0m;
            Decimal divisor = 21.1m;`
            for(int ctr = 0; ctr <= 10; ctr++)
            {
               Console.WriteLine("{0:N1} / {1:N1} = {2:N4}", dividend, divisor, Decimal.Divide(dividend, divisor));
               dividend += .1m;
            }
            Console.ReadKey();
          }
       }
    }
    
    我认为这对你很有用。。。
    谢谢您……

    编辑:我的建议是,如果单位不是加权单位,则避免使用十进制,并按以下方式管理其余单位

    考虑到工作的复杂性和您已经为此付出的努力,我建议您对体系结构进行少量更改

    也就是说,你应该将你的“有差异的产品”分为两种不同的类型“包装”和“分离”,并对它们进行不同的管理

    例如,现在有一种产品的变体名称为“Panadol”。 1包panadol(Parant产品)含60片(儿童产品)

    您有一个产品“panadol”10包和30片的库存,您将把它们与相同的批号关联起来

    现在你的库存应该是这样的

    //Inventory table 
    
    | InventoryID | Batch |  ProductID  |
    |    1        | 001   |    1        | 
    
    // Stock table 
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       10       |        30      |
    
    // Stock table 
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       9        |        30      |   
    
    // Stock table
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       9        |        10      | 
    
    // Stock table
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       8        |        5       |
    
    第一个交易1包,您需要检查库存,然后使您的交易表如下所示

    //Inventory table 
    
    | InventoryID | Batch |  ProductID  |
    |    1        | 001   |    1        | 
    
    // Stock table 
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       10       |        30      |
    
    // Stock table 
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       9        |        30      |   
    
    // Stock table
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       9        |        10      | 
    
    // Stock table
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       8        |        5       |
    
    第二次交易20片,您需要检查库存,然后使您的交易表如下所示

    //Inventory table 
    
    | InventoryID | Batch |  ProductID  |
    |    1        | 001   |    1        | 
    
    // Stock table 
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       10       |        30      |
    
    // Stock table 
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       9        |        30      |   
    
    // Stock table
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       9        |        10      | 
    
    // Stock table
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       8        |        5       |
    
    第三次交易65片, 首先,您将检查分离的库存,即不足。 然后你要检查包装好的存货,即是否足够 然后必须有元数据表,该表将保留1个panadol包装包含60片的记录。 现在,您将把打包的库存移动到分离的库存。 你的桌子一定是这个样子

       // Stock table
        | StockID | InventoryID  |   Packed Stock | Detached Stock |  
        |    1    |      1       |       8        |        70      |  
    
    现在您将进行事务处理,您的表将如下所示

    //Inventory table 
    
    | InventoryID | Batch |  ProductID  |
    |    1        | 001   |    1        | 
    
    // Stock table 
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       10       |        30      |
    
    // Stock table 
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       9        |        30      |   
    
    // Stock table
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       9        |        10      | 
    
    // Stock table
    | StockID | InventoryID  |   Packed Stock | Detached Stock |  
    |    1    |      1       |       8        |        5       |
    
    留住你