From 2291a5263bab637316820fb045aca983b8a8e5a3 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 7 Nov 2020 16:32:04 +0100 Subject: [PATCH] adding a comma as delimiter for thousands --- .../calculator/helpers/CalculatorImpl.kt | 9 ++++++++- .../simplemobiletools/calculator/helpers/Formatter.kt | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt index af7a8403..8bed6fe4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt @@ -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 } diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/Formatter.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/Formatter.kt index c98fb297..6827f083 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/Formatter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/Formatter.kt @@ -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)