相关疑难解决方法(0)

将一个小数加倍到2位小数

如果值为200.3456,则应格式化为200.34.如果是200,那应该是200.00.

java double rounding

447
推荐指数
11
解决办法
113万
查看次数

如何将DecimalFormat的小数分隔符从逗号更改为点/点?

我有一个小的疯狂方法,将BigDecimal值转换为漂亮可读的字符串.

private String formatBigDecimal(BigDecimal bd){
    DecimalFormat df = new DecimalFormat();
    df.setMinimumFractionDigits(3);
    df.setMaximumFractionDigits(3);
    df.setMinimumIntegerDigits(1);
    df.setMaximumIntegerDigits(3);
    df.setGroupingSize(20);
    return df.format(bd);
}
Run Code Online (Sandbox Code Playgroud)

然而,它还产生了一个所谓的分组分隔符",",它使我的所有值都出现如下:

xxx,xxx
Run Code Online (Sandbox Code Playgroud)

我确实需要分隔符是点或点而不是逗号.有没有人知道如何完成这个小壮举?

我已阅读,尤其是这个,现在死,但我无法找到一个方法来完成这件事.我是以错误的方式接近这个吗?这样做有更优雅的方式吗?甚至可能是一个解决不同本地数字表示的解决方案,因为逗号将完全符合欧洲标准.

java android decimal-point bigdecimal decimalformat

192
推荐指数
5
解决办法
24万
查看次数

在Java中最多2位小数?

我已经阅读了很多stackoverflow问题,但似乎没有一个对我有用.我正在math.round()用来完善.这是代码:

class round{
    public static void main(String args[]){

    double a = 123.13698;
    double roundOff = Math.round(a*100)/100;

    System.out.println(roundOff);
}
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:123但我希望它是123.14.我读到添加*100/100会有所帮助但是你可以看到我没有设法让它工作.

输入和输出都是双倍的绝对必要.

如果您更改上面代码的第4行并发布它将会非常有用.

java

179
推荐指数
10
解决办法
81万
查看次数

Java中的双十进制格式

我在格式化双精度小数时遇到了一些问题.如果我有一个双精度值,例如4.0,我如何格式化小数,使其为4.00?

java double formatting decimal

107
推荐指数
6
解决办法
43万
查看次数

在java中将字符串转换为BigDecimal

我正在读取XMLJava中的货币.

String currency = 135.69;
Run Code Online (Sandbox Code Playgroud)

当我将其转换为BigDecimal我得到:

 System.out.println(new BigDecimal(135.69));
Run Code Online (Sandbox Code Playgroud)

输出:

135.68999999999999772626324556767940521240234375.
Run Code Online (Sandbox Code Playgroud)

为什么输出这么多数字呢?我怎么能避免这个?我想要的只是输出135.69.

java bigdecimal

41
推荐指数
2
解决办法
16万
查看次数

如何限制双打印的小数位数?

这个程序有效,除非nJars的数量是7的倍数,我会得到一个答案,如$ 14.999999999999998.对于6,输出为14.08.如何修复7的倍数的异常,这样它会显示14.99美元?

import java.util.Scanner;
public class Homework_17
{
 private static int nJars, nCartons, totalOunces, OuncesTolbs, lbs;

 public static void main(String[] args)
  {
   computeShippingCost();
  }

  public static void computeShippingCost()
  {
   System.out.print("Enter a number of jars: ");
   Scanner kboard = new Scanner (System.in);
   nJars = kboard.nextInt();
   int nCartons = (nJars + 11) / 12;
   int totalOunces = (nJars * 21) + (nCartons * 25);
   int lbs = totalOunces / 16;
   double shippingCost =  ((nCartons * 1.44) + (lbs + 1) * 0.96) …
Run Code Online (Sandbox Code Playgroud)

java double int

22
推荐指数
3
解决办法
13万
查看次数

如何格式化字符串以显示两个小数位

在将double加到字符串并尝试格式化后尝试获取两位小数时,我遇到了一个小问题

  pieChart.setCenterText("$" + "" + ""  +String.format( "% 1$ .2f", Double.toString(dataCost),""));
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我改进上面的代码行,以便它可以显示到两个小数位?你还会注意到我试图在美元符号和值之间留一个空格

java android android-layout

7
推荐指数
2
解决办法
2万
查看次数