How to get zoom steps from diagram

I am using zoom control with % for this I need to calculate zoom steps for that I can zoom in or out smoothly as expected.
Actually the issue is while I am using increaseZoom and decreaseZoom and looking into the difference, which is not constant.

Yes, the behavior of CommandHandler.increaseZoom and decreaseZoom changes the Diagram.scale by multiplication, not by addition. You can change that factor by setting CommandHandler | GoJS API.

If you don’t want the current implementation of those two methods, you can override them to do what you want.

Here’s what one command does:

CommandHandler.prototype.increaseZoom = function(factor) {
  if (factor === undefined) factor = this.zoomFactor;
  var diagram = this.diagram;
  if (diagram === null) return;
  if (diagram.autoScale !== go.Diagram.None) return;
  var newscale = diagram.scale * factor;
  if (newscale < diagram.minScale || newscale > diagram.maxScale) return;
  diagram.scale = newscale;