如何将
int
转换为 decimal
示例:将 12 转换为 12.0
我在下面尝试过,但运气好
int i = 10;
Decimal newValue = Decimal.parse(i)
和
Decimal newValue = Convert.ToDecimal(i)
您不能更改局部变量类型:
// i is integer
int i = 10;
// and now i become decimal
decimal i = decimal.parse(i); // <- doesn't compile
但是你可以创建另一个局部变量:
int i = 10;
decimal d = i; // d == 10M
并且 .Net convert
i
转换为 decimal
(这样你就有了整数 i == 10
和 decimal
d == 10m
)。 dynamic
打字有一种异国情调的可能性
dynamic i = 15; // i is int
i = Convert.ToDecimal(i); // now i is decimal; "(decimal) i;" will do as well
但我怀疑你是否想要它。如果你坚持
Parse()
你应该放一个丑陋的
decimal d = decimal.Parse(i.ToString());
因为我们仅从
String
表示进行解析。
编辑:
但是十进制值仍然只包含整数,即 10 而不是 10.0
数学是这么说的
10 == 10.0 == 10.00 == 10.000 == ...
因此,如果您想更改表示方式,您应该使用格式:
Console.Write(d.ToString("F1")); // F1 - 1 digit after the decimal point
如果出现
decimal
(不是double
),你可以玩一个(肮脏的?)把戏
decimal d = i + 0.0m;
Console.Write(d); // 10.0
decimal(或 Decimal)定义了一个 隐式转换运算符,它允许您简单地编写如下内容:
int i = 10;
decimal d = i;
尝试
int i = 10;
decimal d = new decimal(i);
请注意,您无法即时将
i
的类型从 int
更改为 decimal
;您需要有两个变量 - 一个 int
(i
) 和一个 decimal
(d
)。