我想要的是一种将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库函数可用于将数字截断为任意数量的小数位?例如.
SomeLibrary.truncate(1.575, 2) = 1.57
Run Code Online (Sandbox Code Playgroud)
谢谢
我在Android项目中需要保存TDateTime类型为(Delphi)的文件.我的日期是毫秒,但我不知道如何将毫秒转换为TDateTime.
我有这样的事情:
Date dateInMillis = new Date(System.currentTimeMillis());
double dateInDouble = ???;
Run Code Online (Sandbox Code Playgroud)
我会很高兴有任何提示可以帮助我解决这个问题.
所以我的程序也做了我想要的所有事情,除了在随机数为临时数生成时只显示小数点后的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) 我有以下代码:
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)