-2

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

我的代码:

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

但它只返回 1。

4

5 回答 5

4
int price = 120;
decimal calc = price / 100m;

你的变种:

int price = 120;
int temp = price / 100;// temp = 1
decimal calc = (decimal) temp;
于 2013-04-24T09:32:05.203 回答
2
int price = 120;
decimal calc = ((decimal)price) / 100;
于 2013-04-24T09:32:16.010 回答
1

您的计算是以整数类型完成的,因为两个操作数都是整数。它应该是:

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

或者

decimal calc = (decimal)price / 100;
于 2013-04-24T09:32:15.280 回答
0

当您将一个整数除以另一个整数时,结果始终是一个整数。由于您希望以更精确的方式获得答案,因此您需要根据所需的精度对其进行类型转换。Decimal 在 C# 中为您提供最佳精度。但即使转换为 float 或 double 也会以您期望的格式为您提供答案。再次铸造取决于所需的准确度。是来自 MSDN 的更详细的解释。

于 2013-04-24T09:41:43.067 回答
0

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

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

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

int priceInInt=120;
decimal price=priceInInt;
decimal calc=price/100;
于 2013-04-24T09:44:05.877 回答