Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用十进制分隔符格式化数字/字符串_Java_String Formatting_Number Formatting_Decimalformat - Fatal编程技术网

Java 使用十进制分隔符格式化数字/字符串

Java 使用十进制分隔符格式化数字/字符串,java,string-formatting,number-formatting,decimalformat,Java,String Formatting,Number Formatting,Decimalformat,我正在尝试使用十进制格式格式化数字。但我想让它格式化一个数字,就像 input: 1234. --> should be formatted to: 1,234. 但根据十进制格式的规则,我会得到1234.0或1234.00 我要怎么做才能完成这件事 如果不想显示任何小数位,请不要格式化浮点值:)如果使用biginger、int或long,则可以: import java.math.*; import java.text.*; public class Test { pr

我正在尝试使用
十进制格式
格式化数字。但我想让它格式化一个数字,就像

input: 1234.  -->  should be formatted to: 1,234.
但根据十进制格式的规则,我会得到
1234.0
1234.00

我要怎么做才能完成这件事

如果不想显示任何小数位,请不要格式化浮点值:)如果使用
biginger
int
long
,则可以:

import java.math.*;
import java.text.*;

public class Test {

    private static final char p = 'p';

    public static void main(String[] args) {
        NumberFormat format = new DecimalFormat();
        BigInteger value = BigInteger.valueOf(1234);
        System.out.println(format.format(value));
        System.out.println(format.format(1234));
        System.out.println(format.format(1234L));
    }
}

应该帮助您的方法是和

猜一猜,可能就是你要找的



要确保始终显示十进制分隔符,请使用:

您可以通过使用设置数字格式,而不管它是否为十进制

DecimalFormat f = new DecimalFormat("#,###"); 
f.format(whatever)...
试试这个:

DecimalFormat df = new DecimalFormat("#,###.", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
System.out.println(df.format(1234));

导致输出错误的规则是什么?您能否显示您如何使用
DecimalFormat
的示例代码?问题是,我想显示该点。它就像一个输入,您可以添加单个值。所以,我想显示点。@user2118495:显示小数分隔符后没有小数位数是很不寻常的。我不记得在用户界面或人类写作中见过这种情况。如果我在几个计算器上按点,我会得到后面没有数字的分隔符。这是我想要的方式。就像普通的计算器输入一样。@user2118495:但这是在进行输入时进行的,而不是格式化输出。是的。我在接受输入时格式化。在读取每个数字后,我格式化。我添加了一个答案。我无法使用分隔符获得输出。喜欢输入:1。产量:1。第一次只有1或1.0没有将其作为一项要求。更新了答案来处理这个问题。
DecimalFormat df = new DecimalFormat("#,###.", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
System.out.println(df.format(1234));