如何将67转为浮动等效?

时间:2014-08-11 18:33:24

标签: c# floating-point type-conversion

我使用的库需要在变量上设置值,并且只接受float类型,但TrackBar控制只接受Int32的{ {1}}属性。

因此,我们假设Value的最小值为0,最大值为100.并且TrackBar的当前值为67;如何将该值转换为float中的等效值?所以它应该变成喜欢 0.067,如果我是正确的。

2 个答案:

答案 0 :(得分:2)

要将int转换为float,只需转换:

(float)trackBar.Value;

Convert.ToSingle(trackBar.Value);

请注意,如果您需要更改范围,则需要至少执行除法。即在你的情况下,它看起来像是百分比,所以除以100.0:

trackBar.Value / 100.0f;

请注意,如果您使用100,则结果将是错误的,因为使用整数除法(trackBar.Value / 100始终为0)。

通常将0-n范围内的整数转换为(mixValue, maxValue)范围:

 (trackBar.Value /( (float) maxValue - minValue)) + minValue;

答案 1 :(得分:2)

将整数值除以100作为float,以获得float的百分比。这将使值标准化为0到1之间的十进制值:

float trackBarPercentage = trackBar.Value / 100f;

integer值除以float值会导致右侧自动转换为float类型。有关详细信息,请参阅MSDN文章Casting and Type Conversions