用小数计算

时间:2013-04-24 09:30:51

标签: c#

我试图在计算之后得到我的int的逗号,但我似乎无法让它工作。

我的代码:

int price = 120;
decimal calc = price / 100;

但它只返回1.

5 个答案:

答案 0 :(得分:4)

int price = 120;
decimal calc = price / 100m;

你的变种:

int price = 120;
int temp = price / 100;// temp = 1
decimal calc = (decimal) temp;

答案 1 :(得分:2)

int price = 120;
decimal calc = ((decimal)price) / 100;

答案 2 :(得分:1)

由于两个操作数都是整数,因此您可以在整数类型中进行计算。它应该是:

decimal calc = price / 100M; 
                     // ^^^^^
                     //atleast one of the operand should be decimal

decimal calc = (decimal)price / 100;

答案 3 :(得分:0)

将整数除以另一个整数时,结果始终为整数。由于您希望以更精确的方式获得答案,因此需要根据所需的精度对其进行类型转换。 Decimal为您提供C#中最佳的精度。但即使是浮动或双重投射,也会以你所期望的格式给出答案。再次施放取决于所需的准确度。 Here是来自MSDN的更详细说明。

答案 4 :(得分:0)

最简单的方法是将price声明为十进制

decimal price=120;
decimal calc=price/100;

如果它来自参数或其他局部变量,您仍然可以将其存储为十进制,如:

int priceInInt=120;
decimal price=priceInInt;
decimal calc=price/100;