C# 十进制计算

C# 十进制计算,c#,C#,我试图在计算完int后得到它的逗号数,但我似乎无法让它起作用 我的代码: int price = 120; decimal calc = price / 100; 但它只返回1 int price = 120; decimal calc = price / 100m; 您的变体: int price = 120; int temp = price / 100;// temp = 1 decimal calc = (decimal) temp; 由于两个操作数都是整数,因此正在以整数类型执行

我试图在计算完int后得到它的逗号数,但我似乎无法让它起作用

我的代码:

int price = 120;
decimal calc = price / 100;
但它只返回1

int price = 120;
decimal calc = price / 100m;
您的变体:

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

由于两个操作数都是整数,因此正在以整数类型执行计算。应该是:

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


将一个整数除以另一个整数时,结果始终为整数。既然你想让你的答案更精确,你就需要根据你想要的精确性来打字。十进制为您提供了C#中尽可能高的精度。但即使是将其转换为浮动或双精度,也会以您期望的格式给出答案。再次铸造取决于所需的精度水平。更详细的解释来自MSDN

最简单的方法是将
价格
也声明为十进制

decimal price=120;
decimal calc=price/100;
如果它来自一个参数或另一个局部变量,您仍然可以将其存储为十进制,如:

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