Java如何长时间表示十进制数

时间:2018-09-16 06:40:56

标签: java

如何将字符串数字“ 6542.5699999999997”转换为长整数?可以说我想长期保持8位数的精度,所以它应该像这样:

长:654257000000

不,我不想使用BigInt。

2 个答案:

答案 0 :(得分:5)

您可以先相乘,然后四舍五入:

long val = (long)(6542.5699999999997 * 100000000 + 0.5);

如果数字也可以是负数,则必须单独处理该情况,因为+ 0.5技巧仅适用于正值。

答案 1 :(得分:2)

尝试一下:

    NumberFormat formatter = new DecimalFormat("#0.00000000");
    String longStr = formatter.format(6542.5699999999997).replaceAll("\\D", "");
    Long longVal = Long.parseLong(longStr);