我需要我的轨迹栏值从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
我在这里做错了什么?
答案 0 :(得分:1)
TrackBar控件在Value
和Minimum
之间返回一个整数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。