Skip to content

Rounds a number to a specified number of decimal places.

License

Notifications You must be signed in to change notification settings

hypersoftllc/qc-round

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qc-round

Build Status Coverage Status License Downloads

npm badge

Rounds a number to a specified number of decimal places.

Installation

npm install --save qc-round

Comparison with JavaScript's Math.round

Differences

  • Math.round doesn't allow rounding to be done at different decimal positions. It has to be simulated.

    • Math.round(value * 100) / 100 to simulate round(value, -2);

    • Math.round(value / 100) * 100 to simulate round(value, 2);

  • Due to the underlying floating point number representation, using the simulated examples above with certain values does not return the correct value.

    • E.g., Math.round(1.005 * 100) / 100 returns 1 instead of 1.01.
  • Will not ever return -0.

    • E.g., Math.round(-0) returns -0 instead of 0.

    • E.g., Math.round(-Number.MIN_VALUE) returns -0 instead of 0.

Example Usage

import { round } from 'qc-round';

round(20.49);           // 20
round(20.5);            // 21
round(-20.5);           // -20
round(-20.51);          // -21
round(1234.5678, -5);   // 1234.5678
round(1234.5678, -4);   // 1234.5678
round(1234.5678, -3);   // 1234.568
round(1234.5678, -2);   // 1234.57
round(1234.5678, -1);   // 1234.6
round(1234.5678, 0);    // 1235
round(1234.5678);       // 1235
round(1234.5678, 1);    // 1230
round(1234.5678, 2);    // 1200
round(1234.5678, 3);    // 1000
round(1234.5678, 4);    // 0