Android 货币转换器数字格式

Android 货币转换器数字格式,android,kotlin,Android,Kotlin,您好,我正在制作一个货币转换器,从印尼盾到其他12种货币。 在下面的示例中,我希望获得: 对于10卢比➝ 0.001欧元 对于100 RP➝ 0.006欧元 对于1000卢比➝ 0.06欧元 对于100000卢比➝ 6欧元 对于1000000卢比➝ 60欧元 对于10000000卢比➝ 600欧元 我举了一个卢比兑欧元的例子。我有一个字段,输入一个值,其他值自动更新 我的问题是,在“显示”选项卡中,它将值与指数放在一起。我想要一个点后最多两位数的数字。有没有办法得到这个?谢谢大家! class

您好,我正在制作一个货币转换器,从印尼盾其他12种货币。
在下面的示例中,我希望获得:
对于10卢比➝ 0.001欧元
对于100 RP➝ 0.006欧元
对于1000卢比➝ 0.06欧元
对于100000卢比➝ 6欧元
对于1000000卢比➝ 60欧元
对于10000000卢比➝ 600欧元

我举了一个卢比兑欧元的例子。我有一个字段,输入一个值,其他值自动更新

我的问题是,在“显示”选项卡中,它将值与指数放在一起。我想要一个点后最多两位数的数字。有没有办法得到这个?谢谢大家!

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        valeurIdr.addTextChangedListener(object : TextWatcher {
            override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {

                if (s.toString().equals("")) {
                    resultEuro.text=null
                } else {

                    val idr = valeurIdr?.text.toString().toDouble()
                    val euro = 0.000060

                    resultEuro?.setText((idr * euro).toString())
                }


            }

            override fun beforeTextChanged(
                s: CharSequence, start: Int, count: Int, after: Int) {
            }

            override fun afterTextChanged(s: Editable) {
                // TODO Auto-generated method stub
            }
        })


    }
}

首先,这在数学上是不正确的

但是如果你想要6.000000=6.00

fun roundOffDecimal(number: Double): Double? {
    val df = DecimalFormat("#.##")
    df.roundingMode = RoundingMode.CEILING
    return df.format(number).toDouble()
}
上面的方法为您提供两位数的最大值
ex:1.78345=1.79

感谢您的反馈,如果我有100印尼盾,为什么这不正确?我必须得到0.006欧元。我提出了你的解决方案,但结果是一样的