如何在Android上格式化数字

时间:2013-01-06 20:57:49

标签: java android

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

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 mm = 0,0012345 km这个好不对? :)

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

获取任何帮助

3 个答案:

答案 0 :(得分:4)

使用String.format:

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

答案 1 :(得分:2)

如果您希望您的号码总是有6位有效数字,请使用

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

给出结果0.0563287

如果要在小数位后舍入到6个数字,请使用

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

给出结果0.056329

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

答案 2 :(得分:1)

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

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

然后致电:

df.format(someDoubleValue);