相关疑难解决方法(0)

如何在Java中将数字舍入到n个小数位

我想要的是一种将double转换为使用half-up方法进行舍入的字符串的方法 - 即如果要舍入的小数为5,则它总是向上舍入到前一个数字.这是在大多数情况下舍入大多数人所期望的标准方法.

我也希望只显示有效数字 - 即不应该有任何尾随零.

我知道这样做的一种方法是使用该String.format方法:

String.format("%.5g%n", 0.912385);
Run Code Online (Sandbox Code Playgroud)

收益:

0.91239
Run Code Online (Sandbox Code Playgroud)

这很好,但它总是显示5位小数的数字,即使它们不重要:

String.format("%.5g%n", 0.912300);
Run Code Online (Sandbox Code Playgroud)

收益:

0.91230
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用DecimalFormatter:

DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);
Run Code Online (Sandbox Code Playgroud)

收益:

0.91238
Run Code Online (Sandbox Code Playgroud)

但是你可以看到这使用了半均匀舍入.也就是说,如果前一个数字是偶数,它将向下舍入.我想要的是这个:

0.912385 -> 0.91239
0.912300 -> 0.9123
Run Code Online (Sandbox Code Playgroud)

在Java中实现这一目标的最佳方法是什么?

java decimal rounding digits

1209
推荐指数
22
解决办法
155万
查看次数

是否有任何在java中截断double的函数?

是否有Java库函数可用于将数字截断为任意数量的小数位?例如.

SomeLibrary.truncate(1.575, 2) = 1.57
Run Code Online (Sandbox Code Playgroud)

谢谢

java

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

在Java中将毫秒转换为TDateTime

我在Android项目中需要保存TDateTime类型为(Delphi)的文件.我的日期是毫秒,但我不知道如何将毫秒转换为TDateTime.

我有这样的事情:

Date dateInMillis = new Date(System.currentTimeMillis());
double dateInDouble = ???;
Run Code Online (Sandbox Code Playgroud)

我会很高兴有任何提示可以帮助我解决这个问题.

java delphi android

4
推荐指数
1
解决办法
1386
查看次数

Java - 只显示两个小数点?

所以我的程序也做了我想要的所有事情,除了在随机数为临时数生成时只显示小数点后的2个位置(12.00).它现在正在做的是(12.1234567897654).

我是java的初学者,这是我自己完成的第一个程序,所以如果答案很明显,请不要吝啬D:

我试过printf和%.2f,但我不能让它工作

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

  double [] temp = new double [7];


  double random = Math.random() * 100 + 1;

  temp[0] = Math.random() * 100 + 1;

     //Calculating average          
     int sum = 0;
     for (int i = 0; i < temp.length; i++) {
        temp[i] =  Math.random() * 100 + 1;
        sum += temp[i];
      }

     //average being stated
     double average = (double) sum / temp.length;
     System.out.println("The average temperature is " + average);

    //Temperatures …
Run Code Online (Sandbox Code Playgroud)

java arrays decimalformat

2
推荐指数
1
解决办法
1098
查看次数

我可以在Java中截断小数吗?

我有以下代码:

import java.util.Scanner;

public class DecimalPoints {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) 
    {
        Scanner scanner = new Scanner(System.in);

        System.out.println("a: ");               // printing output
        String text_1 = scanner.nextLine();      // taking input
        double d1 = Double.parseDouble(text_1);  // parsing double from input  

        System.out.println("b: ");               // printing output
        String text_2 = scanner.nextLine();      // taking input
        double d2 = Double.parseDouble(text_2);  // parsing double from input

        double d3 = d1 / d2;

        d3 = Math.round(d3 * 100) …
Run Code Online (Sandbox Code Playgroud)

java decimal-point

0
推荐指数
1
解决办法
4899
查看次数