In such cases, the best approach is to iterate using integers, and then scale or convert the data type of the iterator as needed.
But your pattern needs some definition... please demonstrate an algorithm in pseudocode because it is not immediately obvious how your sequence is developed. Please use whole fractions like 3/2 instead of 1 1/2 because the computer will not be able to deal with those anyway.
0, 1/3, 1/2, 2/3... does not seem to have any rules to it. It's just arbitrarily increasing familiar fractions...
So you want to create x, x+1/3, x+1/2, x+2/3 and then go to x+1
May be your for loop could be about x and not the increments which are constants. For each x you use, it fills in 4 entries of your array at index 4x+0, 4x+1, 4x+2 and 4x+3
there is a menu on a display.
in this array should be mathematic values for a variable calculations with a formula.
you can scroll trough them with two physical buttons +/-, activate them with enter button, so that you can calculate with them.
another array is set to what should be shown on the display if one of the value arrays is activated.
value[1] = 4/3; //this is the value array, with this value will be calculated
displayValue[1] = "1 1/3"; // this should be shown on the display, if value[1] is chosen and set
there are more other values which should be variable in the calculation formula, 7 in total.
you can change those 7 values around, but only in the preset values in the arrays not freely, to get a result.
Why are you "lurching" through the values? The difference between 0 and 1/3 is not the same as between 1/3 and 1/2. The number that is halfway between 0 and 1/2 is 1/4.