我试图在计算后得到我的 int 的逗号数,但我似乎无法让它工作。
我的代码:
int price = 120;
decimal calc = price / 100;
但它只返回 1。
我试图在计算后得到我的 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;
当您将一个整数除以另一个整数时,结果始终是一个整数。由于您希望以更精确的方式获得答案,因此您需要根据所需的精度对其进行类型转换。Decimal 在 C# 中为您提供最佳精度。但即使转换为 float 或 double 也会以您期望的格式为您提供答案。再次铸造取决于所需的准确度。这是来自 MSDN 的更详细的解释。
最简单的方法是也声明price
为十进制
decimal price=120;
decimal calc=price/100;
如果它来自参数或另一个局部变量,您仍然可以将其存储为十进制,如:
int priceInInt=120;
decimal price=priceInInt;
decimal calc=price/100;