当前位置: 首页 > 知识库问答 >
问题:

在java中显示小数分隔符后的0

伍胡媚
2023-03-14

我在做一个计算器应用程序,我用十进制格式来格式化我的数字。我的问题是我想让它显示像0,003这样的数字。但是逗号后面的2零直到我输入3才显示出来。请帮我修复这里的代码

DecimalFormatSymbols formatSymbolsGermany = DecimalFormatSymbols.getInstance(Locale.GERMANY);
DecimalFormat decimalFormat = new DecimalFormat("#,###,###.########", formatSymbolsGermany);

添加“0”的代码

private void zeroOnClick() {
    if (tvNumber.getText().toString().length() < 11) {
        convertNumber("0");
    }
}
private void convertNumber(String number) {
        number1 += number;
        try {
            double a = Double.parseDouble(number1.replace(',', '.'));
            tvNumber.setText(decimalFormat.format(a));
            delete = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
   }
private void addComma(){
    if (comma) {
        //do nothing
    } else {
            number1 += ",";
            tvNumber.setText(number1);
            comma = true;
    }
}

共有1个答案

邵星河
2023-03-14

最简单的解决方案是只需tvnumber.settext(number1);直接编辑,而无需来回转换,只在编辑完成后才以正确的格式显示。

另一种可能是,如果数字包含小数点,则在转换前人为地附加一个数字,然后在转换后移除该数字。

String res = number1.replace(',', '.'); // shouldn't this be decimalFormat dependent ?
if( number1.contains(".") ) {
    res = decimalFormat.format( Double.parseDouble(res+"5"));
    res = res.substring(0,res.length()-1);
} else {
    res = decimalFormat.format( Double.parseDouble(res) );
}
 类似资料:
  • 我在我的列表视图中添加了一个可绘制的分隔线,但它出现在除最后一项之外的所有项目中。 我在列表中只有5个项目,所以在最后一个项目之后都是空白,我想在最后一项之后也有一个分隔符 我试过这个: 在我的列表视图中。但它不起作用 非常感谢。

  • 问题内容: 给定一个语言环境java.text.NumberFormat: 如何获得该数字格式中用作十进制分隔符的字符(如果是逗号或点)?如何在不必使用新的DecimalFormat(format)的情况下修改此属性? 谢谢 问题答案: 您正在寻找帮助器类DecimalFomatSymbols: 要根据需要设置符号: 编辑: 此答案仅对有效,而对问题所要求的无效。无论如何,因为这可能会对作者有所帮

  • 问题内容: 是否可以从“。”更改小数逗号。(点)到MySQL输出中的其他字符(逗号)?我不想使用像这样的函数,我只想使用我通常使用的所有查询,而无需进行任何修改。我正在寻找(一些变量,语言环境等)设置。我试图搜索手册,但没有成功。 问题答案: 不,你不能。这就是SQL标准,而MySQL遵循它(至少在这一点上)。 问题并不是输出的真正问题(如您所提到的,大多数DBMS中都有各种功能),而是输出。如果

  • 问题内容: 我目前使用以下代码打印双精度代码: 除Java在我想使用点时使用Java语言环境的小数点分隔符(逗号)外,此方法运行良好。是否有捷径可寻? 问题答案: 使用其中的重载可以指定语言环境: 如果您 仅 格式化数字(如此处所示),则使用可能更合适。但是,如果您需要其余的格式化功能,则应该可以正常工作。

  • 我将立即承认我是一个java开发人员,正在寻找一个类似于DecimalFormat的函数,类似于: 代码改编自Oracle javase i18n 我能找到的与此相关的每个资源要么只是格式化(而不是解析) 如何为Angular 4中的数字管道指定千位分隔符 NativeScript:格式化数字类型脚本 或者人们使用正则表达式替换(这在我看来很疯狂) 如何将带有逗号千分隔符的字符串解析为数字? 或一

  • 问题内容: 我有一个像这样的字符串: 我想拆分该字符串并选择作为分隔符。 我的代码如下所示: 我得到的是一个包含所有字符作为一个条目的数组: 有人知道为什么吗? 我不能用分割字符串吗? 问题答案: 在RegEx中被视为。因此,您需要对其进行转义: