Tag: 数字格式化

如何在Java中将数字格式化为格式为“xxx.xxx.xxx,yy”?

是否有一个Java类允许您将类似“102203345.32”的数字格式化为此“102.203.345,32”并返回字符串类型? 我想获得一个字符串,其中数千个被’。’分隔。 小数用逗号’,’分隔。 有人可以帮帮我吗? 我发现了一个DecimalFormat类,我尝试自定义它: public class CustomDecimalFormat { static public String customFormat(String pattern, double value ) { DecimalFormat myFormatter = new DecimalFormat(pattern); String output = myFormatter.format(value); return output; } } 但是当我像这样调用customFormat方法时:CustomDecimalFormat.customFormat(“###。###,00”)我得到一个exception…… 我该怎么办? 谢谢!

显示双精度和浮点数时如何对齐小数点

如果我有以下小数点数: Double[] numbers = new Double[] {1.1233, 12.4231414, 0.123, 123.3444, 1.1}; for (Double number : numbers) { System.out.println(String.format(“%4.3f”, number)); } 然后我得到以下输出: 1.123 12.423 0.123 123.344 1.100 我想要的是: 1.123 12.423 0.123 123.344 1.100

如何根据输入长度更改DecimalFormat行为?

我使用以下DecimalFormat模式: // Use ThreadLocal to ensure thread safety. private static final ThreadLocal numberFormat = new ThreadLocal () { @Override protected NumberFormat initialValue() { return new DecimalFormat(“#,##0.00”); } }; 这将执行以下转换: 1 -> 1.00 1.1 -> 1.10 1.12 -> 1.12 我现在有一个额外的要求。 1.123 -> 1.123 1.1234 -> 1.123 这意味着什么时候 小数位少于两位,我将“填充”到小数点后两位。 正好有两三个小数位,我什么都不做。 有超过三个小数位,我将截断到三位小数。 我可以使用DecimalFormat类指定此行为吗?

Java:d​​ouble:如何总是显示两位小数

我在我的项目中使用double值,我想总是显示前两位小数,即使它们是零。 我使用此函数进行舍入,如果我打印的值是3.47233322,它(正确)打印3.47。 但是,当我打印时,例如,值2它打印2.0。 public static double round(double d) { BigDecimal bd = new BigDecimal(d); bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP); return bd.doubleValue(); } 我想打印2.00! 有没有办法在不使用字符串的情况下执行此操作? 谢谢! 编辑:从你的答案(我感谢你)我明白我不清楚我在搜索什么(我很抱歉):我知道如何使用解决方案在数字后打印两位数建议…我想要的是直接存储两位数的双值! 所以当我做类似这样的事情时, System.out.println(“” + d) (其中d是我的双倍值2)它打印2.00。 我开始认为没有办法做到这一点……对吗? 无论如何,再次感谢您的回答,如果您知道解决方案,请告诉我!

如何使JFormattedTextField接受不带小数点的整数(逗号)?

我以这种方式使用JFormattedTextField和NumberFormat : – 提供JFormattedTextField引用 JFormattedTextField integerField; – 创建一个NumberFormat引用 NumberFormat integerFieldFormatter; – 在构造函数中: integerFieldFormatter = NumberFormat.getIntegerInstance(); integerFieldFormatter.setMaximumFractionDigits(0); integerField = new JFormattedTextField(integerFieldFormatter ); integerField.setColumns(5); ………. 我的意思是只使用整数,但是当我键入1500这样的数字时,它会在失去焦点后转换为1,500,抛出exception这是它的第一行: 线程“AWT-EventQueue-0”中的exceptionjava.lang.NumberFormatException:对于输入字符串:“1,500” 当我使用JTextField而不是JFormattedTextField正常接受所有整数时,但我想要使用JFormattedTextField的原因是受益于其输入限制优势。

DecimalFormat和Double.valueOf()

我试图在我的double值的十进制分隔符后删除不必要的符号。 我是这样做的: DecimalFormat format = new DecimalFormat(“#.#####”); value = Double.valueOf(format.format(41251.50000000012343)); 但是,当我运行此代码时,它会抛出: java.lang.NumberFormatException: For input string: “41251,5” at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224) at java.lang.Double.valueOf(Double.java:447) at … 正如我所看到的, Double.valueOf()对于像”11.1″这样的字符串效果很好,但它会像”11,1″这样的字符串窒息。 我该如何解决这个问题? 是否有更优雅的方式 Double.valueOf(format.format(41251.50000000012343).replaceAll(“,”, “.”)); 有没有办法覆盖DecimalFormat类的默认小数分隔符值? 还有其他想法吗?

如何在java中将包含逗号的数字字符串解析为整数?

当我尝试使用Integer.parseInt()解析265,858时,我得到NumberFormatException 。 有没有办法将它解析为整数?