我正在学习在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
获取任何帮助
答案 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);