ohif-viewer/platform/core/src/utils/roundNumber.js
Bill Wallace 38af3112ec
fix(measurements): Update the calibration tool to match changes in CS3D (#3505)
This change makes the OHIF side consistent with the CS3D user calibration settings, and will correctly display px and rounding values consistent with the CS3D display.
2023-09-15 10:50:23 -04:00

35 lines
1.1 KiB
JavaScript

/**
* Truncates decimal points to that there is at least 1+precision significant
* digits.
*
* For example, with the default precision 2 (3 significant digits)
* * Values larger than 100 show no information after the decimal point
* * Values between 10 and 99 show 1 decimal point
* * Values between 1 and 9 show 2 decimal points
*
* @param value - to return a fixed measurement value from
* @param precision - defining how many digits after 1..9 are desired
*/
function roundNumber(value: string | number, precision = 2): string {
if (value === undefined || value === null || value === '') return 'NaN';
value = Number(value);
if (value < 0.0001) return `${value}`;
const fixedPrecision =
value >= 100
? precision - 2
: value >= 10
? precision - 1
: value >= 1
? precision
: value >= 0.1
? precision + 1
: value >= 0.01
? precision + 2
: value >= 0.001
? precision + 3
: precision + 4;
return value.toFixed(fixedPrecision);
}
export default roundNumber;