Tag: decimalformat

如何在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…… 我该怎么办? 谢谢!

我为什么得到例外?

请帮忙。 从扫描程序的提示显示到控制台后,我收到此错误: Exception in thread “main” java.util.IllegalFormatPrecisionException: 2 at java.util.Formatter$FormatSpecifier.checkInteger(Unknown Source) at java.util.Formatter$FormatSpecifier.(Unknown Source) at java.util.Formatter.parse(Unknown Source) at java.util.Formatter.format(Unknown Source) at java.io.PrintStream.format(Unknown Source) at java.io.PrintStream.printf(Unknown Source) at Project6.main(Project6.java:56) 问题来自printf吗? 我检查了格式,看起来是对的。 这是程序: import javax.swing.JOptionPane; // allows for message dialog import java.util.Scanner; // allows for Scanner object to be used import java.text.DecimalFormat; // allows for formatting numbers […]

使用DecimalFormat的问题

当我要在回归后打印出系数时,我在使用DecimalFormat时遇到了问题。 这是代码中遇到问题的部分; DecimalFormat twoDForm = new DecimalFormat(“0.00”); private double s(double d){ return Double.valueOf(twoDForm.format(d)); } 这是eclipse中的错误信息; Exception in thread “main” java.lang.NumberFormatException: For input string: “0,16” at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source) at java.lang.Double.valueOf(Unknown Source) at model.ARF2.s(ARF2.java:126) at model.ARF2.printBestModel(ARF2.java:114) at testing.testclass3.bestForecastingModel(testclass3.java:69) at testing.testclass3.main(testclass3.java:36) 如果有人对如何修复代码有任何过激,请告诉我。 我想要系数上的两位小数。 谢谢 拉尔斯

在Java中使用DecimalFormat进行舍入

让我们看看Java中的以下语句。 System.out.println(new DecimalFormat(“0”).format(2.4)); //returns 2 System.out.println(new DecimalFormat(“0”).format(2.5)); //returns 2 <—Concentrate here System.out.println(Math.round(2.5)); //returns 3 System.out.println(new DecimalFormat("0").format(2.6)); //returns 3 System.out.println(new DecimalFormat("0").format(3.5)); //returns 4 在上述陈述中,除以下情况外,所有其他情况都很明显。 System.out.println(new DecimalFormat(“0”).format(2.5)); 它应该返回3但它返回2 。 怎么样?

Java – 即使在零中也始终保留两个小数位

我试图保持两个小数位,即使当时的数字是零,使用DecimalFormatter : DecimalFormat df = new DecimalFormat(“#.00”); m_interest = Double.valueOf(df.format(m_principal * m_interestRate)); m_newBalance = Double.valueOf(df.format(m_principal + m_interest – m_payment)); m_principal = Double.valueOf(df.format(m_newBalance)); 但是对于某些值,这会给出两个小数位,而对于其他值则不会。 我怎样才能解决这个问题?

如何使用Java的DecimalFormat进行“智能”货币格式化?

我想使用Java的DecimalFormat来格式化双打,如下所示: #1 – 100 -> $100 #2 – 100.5 -> $100.50 #3 – 100.41 -> $100.41 到目前为止,我能想出的最好的是: new DecimalFormat(“‘$’0.##”); 但这不适用于案例#2,而是输出“$ 100.5” 编辑: 很多这些答案只考虑案例#2和#3而没有意识到他们的解决方案会导致#1将100格式化为“100.00美元”而不仅仅是“100美元”。

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类的默认小数分隔符值? 还有其他想法吗?

设置双格式,带2位小数

我有一个简短的等式: double compute,computed2; compute=getminutes/60; 其中getminutes是int ,我想设置与2位小数相等的compute 。 0.00如何格式化等效2个小数位? 例: compute=45/60 it should be 0.75 这是我的工作: DecimalFormat df2 = new DecimalFormat(“00.00000”); double computed,computed2 = 00.000; computed=60/getitbyminutes; df2.format(computed); computed2=computed-8; df2.format(computed2); System.out.printf(“%1$.2f”,computed); System.out.println(); System.out.printf(“%1$.2f”,computed2); 输出将如下: 1.00 7.00

Java:使用DecimalFormat格式化双精度和整数但保持整数不带小数分隔符

我正在尝试在Java程序中格式化一些数字。 数字将是双精度和整数。 处理双精度时,我想只保留两个小数点,但在处理整数时,我希望程序保持不受影响。 换一种说法: 双打 – 输入 14.0184849945 双打 – 输出 14.01 整数 – 输入 13 整数 – 输出 13 (not 13.00) 有没有办法在同一个 DecimalFormat实例中实现它? 到目前为止,我的代码如下: DecimalFormat df = new DecimalFormat(“#,###,##0.00”); DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.ENGLISH); otherSymbols.setDecimalSeparator(‘.’); otherSymbols.setGroupingSeparator(‘,’); df.setDecimalFormatSymbols(otherSymbols);

DecimalFormat模式

public static String formatAmountUpToTwoDecimalNumber(String amount) { if(amount==null || “”.equals(amount)) { return “”; } Double doubleAmount = Double.valueOf(amount); double myAmount = doubleAmount.doubleValue(); NumberFormat f = new DecimalFormat(“###,###,###,###,##0.00”); String s = f.format(myAmount); return s; } “###,###,###,###,##0.00″ ,这种模式的目的究竟是什么? 我认为它有两个目的 分组号码,即千分隔符号 在十进制之后附加两个零,如果缺少十进制,则转换为23到23.00 但为什么在十进制之前有”0″而不是”#” ? 这零的目的究竟是什么? 谢谢您的帮助。