Я создаю проект с моделью Exchange. Существует проблема, связанная с тем, как один и тот же код функционирует по-разному с разными номерами данных (двойной тип).
Вот таблица, где я подчеркнул эту проблему.
https://docs.google.com/spreadsheets/d/1zYxdFHdg1GhtSwj_mMB-eH_YD_PavMxuWDOSf-yeT5Q/edit?usp=sharing
ссылка для кода при необходимости https://script.google.com/d/10QwXa-RwpoDVQmfx9A_RzWJMcKVzi1hTyfkuIConmg8IIoG09zLrvnsy/edit?usp=sharing
Я также создал кнопку «Тест» для удобства использования. Ниже вы можете увидеть код. Он также находится в файле электронной таблицы.
function STtest() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var test = ss.getSheetByName("Test");
var MinD = test.getRange("C23").getValue(); //getting min
var MaxD = test.getRange("C24").getValue(); // getting max
var MinMaxRange;
MinMaxRange = (MaxD - MinD) / 0.01; // range
var i = test.getRange("G8").getRow();
var j = test.getRange("G8").getColumn();
var NewMinD = MinD + 0.01;
test.getRange("G8").setValue(test.getRange("C23").getValue());
//filling minimum price in new table
for (var k = 0 ; k < MinMaxRange-0.002; k++) //fill all prices in new
table
{
test.getRange(i+1, j).setValue(NewMinD);
NewMinD = NewMinD+0.01;
i = i + 1;
}
var i = test.getRange("G8").getRow(); // reset index after loop
var a = test.getRange("A3").getRow();
var b = test.getRange("A3").getColumn();
for (var w = 0 ; w < MinMaxRange-0.002; w++) //transporting bid/ask
//size in new table with right price
{
if (test.getRange(i, j).getValue() == test.getRange(a,b+2).getValue())
{
test.getRange(i, j-1).setValue(test.getRange(a, b+1).getValue());
test.getRange(i, j+1).setValue(test.getRange(a, b+3).getValue());
}
i = i + 1;
}
};
Таким образом, вы можете видеть в диапазоне «C3: C22» случайные цены от 1,90 до 1,94.
Если вы замените эти цены диапазоном выше 2 (например, попробуйте вставить случайные значения от 2,05 до 2,10), код не будет выполнять свой последний цикл (который комментируется в коде как «// перенос размера ставки / спроса в новую таблицу»). с правильной ценой ").
Как это можно исправить и почему это происходит?