相同数量的代码对于不同的数据编号有不同的作用

问题描述 投票:0回答:1

我用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

我还为可用性创建了一个“测试”按钮。您可以在下面看到代码。它也在电子表格文件ofc中。

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插入随机值),代码将不会执行其最后一个循环(在代码中注释为“//在新表中传输出价/询问大小价格合适“)。如何修复它为什么会发生?

google-apps-script google-sheets
1个回答
0
投票

我现在找到了我的解决方案,不仅可以比较值,还可以使用parseFloat + toFixed(2)转换来比较值。我的意思是if (parseFloat(test.getRange(i, j).getValue().toFixed(2)) == test.getRange(a, b+2).getValue());但我完全同意,数据阵列在这里会更合适。无论如何,谢谢大家的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.