跟踪栏值1或0问题

时间:2013-11-19 23:14:20

标签: c#

我需要我的轨迹栏值从0到0到0.1 0.2 ...等返回一个Int值

逻辑告诉我这样做:

val =  (double)trackBar2.Value / 100.0;
valc = Convert.ToInt32(vol);

但结果为1或0,其中1为50至100,0为0至49

我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

TrackBar控件在ValueMinimum之间返回一个整数Maximum

如果您将最小值设置为0并将最大值设置为1,那么轨迹栏(如您所知)将在条形图的前半部分返回0,为后半部分返回1。

如果将最小值设置为0,将最大值设置为10,则每个1/10的条形轨迹栏将返回0到10之间的值。

int value = trackBar2.Value;
// is between 0 and 10

要使其成为0到1之间的浮点值,除以10.0f:

float value = (float)trackBar2.Value / 10.0f;
// is between 0.0 and 1.0

您不希望将该浮点值转换为整数,因为这只会丢弃小数点后的部分。因此要么使用原始整数值,要么计算0到1之间的浮点值。不要使用Convert.ToInt32

答案 1 :(得分:0)

你可以拥有它.Integer无法存储小数值。

整数类型存储整数和0.1不是整数。

你可以除以10而不是100,你会得到一个int。