1

我正在学习在 Android 上编写移动应用程序。我的第一个应用程序是单位转换器。目前一切正常,但我有一个关于格式化数字的问题。我有这段代码来从按钮获取文本并转换适当的输出:

if (bPrevodZ.getText() == "milimeter"){
    if (bPrevodDo.getText()=="kilometer"){
        String PomocnaPremenna = jednotkaZ.getText().toString();
        double cisloNaPrevod = Double.parseDouble(PomocnaPremenna);
        cisloNaPrevod = cisloNaPrevod*0.0000001;
        vysledok.setText(Double.toString(cisloNaPrevod));
    }

最终结果是“cisloNaPrevod”,但我无法显示该数字的良好格式。例如:12345 毫米 = 0,0012345 公里,这很好吗?:)

但如果我转换:563287 mm = 0.05632869999999995 这很糟糕:) 我需要它显示 0.0563287

感谢任何帮助

4

3 回答 3

4

使用字符串格式:

String.format("%.6f", cisloNaPrevod);
于 2013-01-06T20:59:12.880 回答
2

如果您希望您的号码始终有 6 个有效数字,请使用

vysledok.setText(String.format("%.6g", cisloNaPrevod));

给出结果0.0563287

如果要四舍五入到小数点后 6 个数字,请使用

vysledok.setText(String.format("%.6f", cisloNaPrevod));

给出结果0.056329

以下是一些涵盖数字格式的好资源:

于 2013-01-06T21:13:42.993 回答
1

如果这是您经常要做的事情,也许您应该使用DecimalFormat.

DecimalFormat df = new DecimalFormat("#.#######"); 

然后调用:

df.format(someDoubleValue);
于 2013-01-06T21:47:18.297 回答