如何在.net中将int转换为十进制[关闭]

问题描述 投票:0回答:3

如何将

int
转换为
decimal
示例:将 12 转换为 12.0

我在下面尝试过,但运气好

int i = 10;
Decimal newValue = Decimal.parse(i)

Decimal newValue  = Convert.ToDecimal(i)
c# .net integer decimal
3个回答
16
投票

您不能更改局部变量类型:

  // 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

1
投票

decimal(或 Decimal)定义了一个 隐式转换运算符,它允许您简单地编写如下内容:

int i = 10;
decimal d = i;

0
投票

尝试

int i = 10;
decimal d = new decimal(i);

请注意,您无法即时将

i
的类型从
int
更改为
decimal
;您需要有两个变量 - 一个
int
(
i
) 和一个
decimal
(
d
)。

© www.soinside.com 2019 - 2024. All rights reserved.