Я всё еще понять не могу, чем вас не устраивает точность числа порядка e16?
Точность устраивает, просто для моего примера:
vLastValue=10, vFirstValue=0
задаем: vCount=101
и пересчитываем vStep и vFirstValue
vStep = (vLast - vFirst)/(vCount-1.0);
vFirstValue = vLast - vStep *(vCount-1.0);
Получаю
vStep=0.10000000000000001
vFirstValue=-5.55112e-16
Хотя, по идее должно быть:
vStep=0.1
vFirstValue=0
вместе с изменением vStep=0.10000000000000001 изменяется и vFirstValue=-5.55112e-16. И бороться с этим можно только округлением, но для этого придется всякий раз определять количество значащих разрядов vStep, которых больше, чем должно быть ... и опять замкнутый круг...