adding a comma as delimiter for thousands

This commit is contained in:
tibbi
2020-11-07 16:32:04 +01:00
parent 04a191c66b
commit 2291a5263b
2 changed files with 10 additions and 1 deletions

View File

@@ -16,6 +16,7 @@ class CalculatorImpl(calculator: Calculator, private val context: Context) {
private var lastOperation = ""
private val operations = listOf("+", "-", "*", "/", "^", "%", "")
private val operationsRegex = "[-+*/^%√]".toPattern()
private val numbersRegex = "[^0-9,.]".toRegex()
init {
showNewResult("0")
@@ -27,6 +28,12 @@ class CalculatorImpl(calculator: Calculator, private val context: Context) {
}
inputDisplayedFormula += number
val valuesToCheck = numbersRegex.split(inputDisplayedFormula).filter { it.trim().isNotEmpty() }
valuesToCheck.forEach {
inputDisplayedFormula = inputDisplayedFormula.replace(it, Formatter.addGroupingSeparators(it))
}
showNewResult(inputDisplayedFormula)
}
@@ -129,7 +136,7 @@ class CalculatorImpl(calculator: Calculator, private val context: Context) {
if (lastKey != EQUALS) {
val valueToCheck = inputDisplayedFormula.trimStart('-').replace(",", "")
val parts = valueToCheck.split(operationsRegex).filter { it != "" }
baseValue = parts.first().replace(",", "").toDouble()
baseValue = Formatter.stringToDouble(parts.first())
if (inputDisplayedFormula.startsWith("-")) {
baseValue *= -1
}

View File

@@ -18,6 +18,8 @@ object Formatter {
}
fun stringToDouble(str: String) = str.replace(",", "").toDouble()
fun addGroupingSeparators(str: String) = doubleToString(stringToDouble(str))
}
fun Double.format(): String = Formatter.doubleToString(this)