C#如何在浮点数和小数之间进行转换?

C# How to convert between Float and Decimal?

我想使用 NumberUpDownBox 来获取和设置浮点值。 我所知道的是这不起作用:

DecimalConverter dec = new DecimalConverter();
((NumericUpDown)_control).Value = (Decimal)dec.ConvertFrom((float)value);

我找不到关于如何执行此操作的文档...

一种方法是直接投射:

float a = 2.3F;
decimal d = (decimal)a;

或者您可以使用 decimal 构造函数:

decimal d = new decimal(a);

Convert class 具有用于在大多数原始类型之间进行转换的静态方法。

要从 float 转换为 decimal,您可以使用 Convert.ToDecimal():

float f = 1.0f;
decimal d = Convert.ToDecimal(f);

要走另一条路,你可以使用 Convert.ToSingle():

decimal d = 1.0m;
float f = Convert.ToSingle(d);