我试图在计算之后得到我的int的逗号,但我似乎无法让它工作。
我的代码:
int price = 120;
decimal calc = price / 100;
但它只返回1.
答案 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;