countSignificantDecimals to /old-ui/app/util
This commit is contained in:
parent
cff599d0ee
commit
8376da35ac
|
@ -139,32 +139,6 @@ function removeListeners (listeners, emitter) {
|
|||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the length of truncated significant decimals for fiat value
|
||||
* @param {float} val The float value to be truncated
|
||||
* @param {number} len The length of significant decimals
|
||||
* returns {number} The length of truncated significant decimals
|
||||
**/
|
||||
function countSignificantDecimals (val, len) {
|
||||
if (Math.floor(val) === val) {
|
||||
return 0
|
||||
}
|
||||
const decimals = val.toString().split('.')[1]
|
||||
const decimalsArr = decimals.split('')
|
||||
let decimalsLen = decimalsArr.slice(0).reduce((res, val, ind, arr) => {
|
||||
if (Number(val) === 0) {
|
||||
res += 1
|
||||
} else {
|
||||
arr.splice(1) // break reduce function
|
||||
}
|
||||
return res
|
||||
}, 0)
|
||||
decimalsLen += len
|
||||
const valWithSignificantDecimals = `${Math.floor(val)}.${decimalsArr.slice(0, decimalsLen).join('')}`
|
||||
decimalsLen = parseFloat(valWithSignificantDecimals).toString().split('.')[1].length
|
||||
return decimalsLen || 0
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
removeListeners,
|
||||
applyListeners,
|
||||
|
@ -175,5 +149,4 @@ module.exports = {
|
|||
hexToBn,
|
||||
bnToHex,
|
||||
BnMultiplyByFraction,
|
||||
countSignificantDecimals,
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import React, { Component } from 'react'
|
||||
import { formatBalance } from '../util'
|
||||
import { countSignificantDecimals } from '../../../app/scripts/lib/util'
|
||||
import { formatBalance, countSignificantDecimals } from '../util'
|
||||
import PropTypes from 'prop-types'
|
||||
|
||||
class FiatValue extends Component {
|
||||
|
@ -20,11 +19,10 @@ class FiatValue extends Component {
|
|||
const value = formatBalance(props.value, 6, undefined, props.network)
|
||||
|
||||
if (value === 'None') return value
|
||||
let fiatDisplayNumber, fiatTooltipNumber
|
||||
const splitBalance = value.split(' ')
|
||||
|
||||
fiatTooltipNumber = Number(splitBalance[0]) * conversionRate
|
||||
fiatDisplayNumber = fiatTooltipNumber.toFixed(countSignificantDecimals(fiatTooltipNumber, 2))
|
||||
const fiatTooltipNumber = Number(splitBalance[0]) * conversionRate
|
||||
const fiatDisplayNumber = fiatTooltipNumber.toFixed(countSignificantDecimals(fiatTooltipNumber, 2))
|
||||
|
||||
const valueStyle = props.valueStyle ? props.valueStyle : {
|
||||
width: '100%',
|
||||
|
|
|
@ -40,6 +40,7 @@ module.exports = {
|
|||
isHex: isHex,
|
||||
exportAsFile: exportAsFile,
|
||||
isInvalidChecksumAddress,
|
||||
countSignificantDecimals,
|
||||
}
|
||||
|
||||
function valuesFor (obj) {
|
||||
|
@ -251,3 +252,29 @@ function exportAsFile (filename, data) {
|
|||
document.body.removeChild(elem)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the length of truncated significant decimals for fiat value
|
||||
* @param {float} val The float value to be truncated
|
||||
* @param {number} len The length of significant decimals
|
||||
* returns {number} The length of truncated significant decimals
|
||||
**/
|
||||
function countSignificantDecimals (val, len) {
|
||||
if (Math.floor(val) === val) {
|
||||
return 0
|
||||
}
|
||||
const decimals = val.toString().split('.')[1]
|
||||
const decimalsArr = decimals.split('')
|
||||
let decimalsLen = decimalsArr.slice(0).reduce((res, val, ind, arr) => {
|
||||
if (Number(val) === 0) {
|
||||
res += 1
|
||||
} else {
|
||||
arr.splice(1) // break reduce function
|
||||
}
|
||||
return res
|
||||
}, 0)
|
||||
decimalsLen += len
|
||||
const valWithSignificantDecimals = `${Math.floor(val)}.${decimalsArr.slice(0, decimalsLen).join('')}`
|
||||
decimalsLen = parseFloat(valWithSignificantDecimals).toString().split('.')[1].length
|
||||
return decimalsLen || 0
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const assert = require('assert')
|
||||
const { sufficientBalance, countSignificantDecimals } = require('../../../app/scripts/lib/util')
|
||||
const { sufficientBalance } = require('../../../app/scripts/lib/util')
|
||||
|
||||
|
||||
describe('SufficientBalance', function () {
|
||||
|
@ -39,13 +39,3 @@ describe('SufficientBalance', function () {
|
|||
assert.ok(!result, 'insufficient balance found.')
|
||||
})
|
||||
})
|
||||
|
||||
describe('countSignificantDecimals(val, len) function', () => {
|
||||
it('returns correct significant decimals', () => {
|
||||
assert.equal(6, countSignificantDecimals(0.00001232756347, 2))
|
||||
assert.equal(4, countSignificantDecimals(0.00010000003454305430504350, 2))
|
||||
assert.equal(0, countSignificantDecimals(1.0000, 2))
|
||||
assert.equal(0, countSignificantDecimals(2, 2))
|
||||
assert.equal(3, countSignificantDecimals('2.03243', 2))
|
||||
})
|
||||
})
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
const assert = require('assert')
|
||||
const { countSignificantDecimals } = require('../../../../old-ui/app/util')
|
||||
|
||||
describe('countSignificantDecimals(val, len) function', () => {
|
||||
it('returns correct significant decimals', () => {
|
||||
assert.equal(6, countSignificantDecimals(0.00001232756347, 2))
|
||||
assert.equal(4, countSignificantDecimals(0.00010000003454305430504350, 2))
|
||||
assert.equal(0, countSignificantDecimals(1.0000, 2))
|
||||
assert.equal(0, countSignificantDecimals(2, 2))
|
||||
assert.equal(3, countSignificantDecimals('2.03243', 2))
|
||||
})
|
||||
})
|
Loading…
Reference in New Issue