新编程,需要一个带小数点的微调

时间:2013-11-04 21:42:58

标签: c# int double decimal

我是编程的新手,所以请耐心等待,我有一个简单的问题,我想通过,我希望能从中找到它。我想将数字乘以.23,所以我可以得到一个百分比。当我调试它不起作用,我知道它不是一个大问题,但我一直在寻找,我无法弄明白,任何帮助?

 float percengage = .23f;

//Cost of Paint
        percengage = .23f;
        totalCostOfPaint = pricePaintPerGallon * percengage;

 Console.WriteLine("Cost of paint:" + totalCostOfPaint);

2 个答案:

答案 0 :(得分:4)

您的totalCostOfPaint变量需要声明为floatdoubledecimal才能使其正常工作,如同书面说明的那样。

在处理货币价值时,将decimal用于所有计算是非常常见的,因为它提供了更高的精度。

请注意,您可能还想更改格式(打印为货币):

  // Note that pricePaintPerGallon needs to be declared properly, as well...

  decimal percengage = 0.23M;
  decimal totalCostOfPaint = pricePaintPerGallon * percengage;
  Console.WriteLine("Cost of paint: {0:C}", totalCostOfPaint);

答案 1 :(得分:2)

我看到的唯一问题是您没有声明totalCostOfPaintpricePaintPerGallon变量。由于它不起作用,我只能假设你没有在代码中的其他地方声明那些。如果你这样做,它可以正常工作:

float percengage = .23f;
float pricePaintPerGallon = .99f;    
float totalCostOfPaint = pricePaintPerGallon * percengage;

Console.WriteLine("Cost of paint:" + totalCostOfPaint);

演示:http://rextester.com/KNIUNQ58221

您知道,在使用它们之前,必须声明C#中的变量(意味着设置和描述)。编译器需要知道percengagepricePaintPerGallontotalCostOfPaint是局部变量,并且它们的类型为float。您已经为percengage执行此操作,方法是在第一行放置float字样。