Skip to content

@ue-too/board / index / calculateOrderOfMagnitude

函式: calculateOrderOfMagnitude()

calculateOrderOfMagnitude(value): number

定義於: packages/board/src/utils/ruler.ts:37

Calculates the order of magnitude (power of 10) of a number.

參數

value

number

The number to analyze

回傳

number

The power of 10 that best represents this value's magnitude

備註

The order of magnitude helps determine appropriate tick spacing for rulers and grids. For example:

  • Value 1234 has order 3 (10^3 = 1000)
  • Value 0.056 has order -2 (10^-2 = 0.01)

The calculation finds the largest power of 10 that is less than or equal to the absolute value.

Edge cases:

  • Returns 0 for values <= 0
  • For values >= 1: Counts powers of 10 until reaching the value
  • For values < 1: Counts negative powers of 10 until reaching the value

This is used by drawing utilities to automatically scale tick marks and grid lines appropriately for different zoom levels.

範例

typescript
calculateOrderOfMagnitude(1500);   // 3 (between 10^3=1000 and 10^4=10000)
calculateOrderOfMagnitude(85);     // 1 (between 10^1=10 and 10^2=100)
calculateOrderOfMagnitude(7);      // 0 (between 10^0=1 and 10^1=10)
calculateOrderOfMagnitude(0.05);   // -2 (between 10^-2=0.01 and 10^-1=0.1)
calculateOrderOfMagnitude(0);      // 0 (edge case)
calculateOrderOfMagnitude(-100);   // 0 (negative edge case)

參閱

drawRuler for usage in ruler drawing