用十进制计算

本文关键字:计算 十进制 | 更新日期: 2023-09-27 18:10:51

我试图得到我的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 price = 120;
decimal calc = ((decimal)price) / 100;

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

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

decimal calc = (decimal)price / 100;

当一个整数除以另一个整数时,结果总是整数。因为你想要更精确的答案,所以你需要根据你想要的精度对它进行类型转换。十进制在c#中提供了最好的精度。但是,即使将类型转换为float或double也会以您期望的格式给出答案。铸造同样取决于所需的精度水平。以下是来自MSDN的更详细的解释。

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

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

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

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