如何将字符串数字“ 6542.5699999999997”转换为长整数?可以说我想长期保持8位数的精度,所以它应该像这样:
长:654257000000
不,我不想使用BigInt。
答案 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);