如何在.net中将int转换为十进制

时间:2016-05-19 16:08:08

标签: c# .net

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

我试过下面但是运气好

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

Decimal newValue  = Convert.ToDecimal(i)

3 个答案:

答案 0 :(得分:5)

您无法更改本地变量类型:

  // 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 i转换为decimal给你(因此你有整数i == 10decimal d == 10m) 。动态类型

具有异国情调的可能性
  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 :(得分:1)

十进制(或十进制)定义implicit conversion operator,允许您简单地编写如下内容:

json success

答案 2 :(得分:0)

尝试

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

请注意,您无法动态地将i的类型从int更改为decimal;您需要有两个变量 - 一个inti)和一个decimald)。