我想格式化一个双精度到6位精度,而不舍入。
格式后的期望值为6位小数
20790123833965.960938
我试过使用十进制格式
DecimalFormat formatter = new DecimalFormat("#0.000000");
System.out.println(formatter.format(hashValue) );
我得到了这个
20790123833965.960000
发布于 2018-11-27 17:15:21
正如@Benoit在一条评论中所说的,为了保持数字的完全精度,您需要一个BigDecimal
BigDecimal hashValue = new BigDecimal("20790123833965.960938");
DecimalFormat formatter = new DecimalFormat("#0.000000");
System.out.println(formatter.format(hashValue));
输出:
20790123833965.960938
发布于 2018-11-27 17:29:46
使用这段代码,它将会工作。
public class JavaFormatter {
public static void main(String args[]) {
BigDecimal hashValue = new BigDecimal("20790123833965.960938");
DecimalFormat formatter = new DecimalFormat("#.######");
System.out.println(formatter.format(hashValue));
}
}
https://stackoverflow.com/questions/53496080
复制相似问题