java - Java DecimalFormat 的问题

标签 java formatting decimal decimalformat

我如何创建一个总共只有七位数字的 DecimalFormat,并且让它偏向数字的左侧。

例如:1234.5678 将转换为 1234.567 1.2345678 将转换为 1.234567 1234567.8 将转换为 1234567

最佳答案

DecimalFormat 不能做你想做的事,但我认为这更像是一个字符串问题。获得格式化的小数后,您可以执行以下操作:

String number = "123.45678"; // output from decimal format

number = number.substring(0, 7 + (number.contains(".") ? 1 : 0)).replaceAll("\\.$", "");

如果找到小数点,这会将字符串长度截断为 7 或 8(然后删除所有尾随小数点),这正是您所需要的。

这是一些测试代码:

private static String format(String number) {
    return number.substring(0, 7 + (number.contains(".") ? 1 : 0)).replaceAll("\\.$", "");
}

public static void main(String[] args) {
    System.out.println(format("1234567"));
    System.out.println(format("1.2345678"));
    System.out.println(format("1234.5678"));
    System.out.println(format("1234567.8"));
    System.out.println(format(".12345678"));
}

输出:

1234567
1.234567
1234.567
1234567

    .1234567

关于java - Java DecimalFormat 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11127413/

相关文章:

c# - 将 float 转换为十进制,为什么需要显式转换?

java - 处理类中每个输入的扫描仪异常

c# - VS2010格式化在 "empty"控制流语句后插入空格

html - CSS 的间距/宽度

c# - 在 C# 中格式化小数,至少保留 2 位小数

javascript - Highcharts:工具提示中的重要小数

java - 这段逻辑是怎么回事? Java,括号

java - 如何从android中的自定义 ListView 中选择具有id的 TextView ?

java - Hibernate 在另一个 session 中初始化对象

c - 如何将格式数据添加到 c 程序的文本输出?