Kotlin Android Int - PullRequest
       13

Kotlin Android Int

0 голосов
/ 08 февраля 2019

Моя проблема в том, что в настоящее время у меня есть значение £ 17,40, затем оно конвертируется в евро, которое становится € 20,01.при выборе кнопки, которая округляет сумму до 20,00 евро, но должна читаться 30,00 евро (следующая сумма, равная 30 евро).

private fun getNextLogicalCashAmount(currentAmount: Double = getBasket()?.getAmountRemaining() ?: 0.00): Double
{

    var amount = ((Math.ceil(currentAmount) / 10.00).toInt() * 10).toDouble()
    if (amount <= currentAmount )
    {
        amount += 10


    }
    return amount
}

private fun setConvertedAmount(amount: Double)
{
    val nativeFormatter = LocalityHelper.getNumberFormatter()
    converted_amount?.visibility = if (amount > 0.00) View.VISIBLE else View.INVISIBLE
    converted_amount?.text = getString(R.string.same_as_amount, nativeFormatter.format(convertBack(amount)))
}

/**
 * Return the custom amount entered into the EditText as a Double.
 */
private fun getCustomAmount(): Double
{
    return try
    {
        custom_amount?.text.toString().toDouble()
    }
    catch (e: Exception)
    {
        0.00
    }
}

private fun convert(amount: Double): Double = providers.getCurrencyConverter().convert(
        amount,
        providers.getMarketOptions().getCurrencyCode(),
        providers.getStoreOptions().getForeignCurrencyCode()!!
)

private fun convertBack(amount: Double): Double = providers.getCurrencyConverter().convert(
        amount,
        providers.getStoreOptions().getForeignCurrencyCode()!!,
        providers.getMarketOptions().getCurrencyCode()
)

private fun takePayment(amount: Double, foreignAmount: Double)
{
    if (amount > 0.00 && foreignAmount > 0.00)
    {
        CashDrawerDialog().setListener { addPayment(amount, foreignAmount, it) }.show(this)
    }
    else
    {
        Toast.makeText(context, R.string.enter_valid_amount, Toast.LENGTH_SHORT).show()
    }
}

Кажется, я все еще собираюстоимость от £.Поэтому, когда £ достигает £ 20, € изменится на € 30,00, но когда иностранная валюта будет стоить € 20,1, она все равно будет отображаться как € 20,00.

...