用十进制计算
本文关键字:计算 十进制 | 更新日期: 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;