java将大科学数转换为长科学数
我花了很长时间,试图在java中转换数字1.2846202978398e+19,但没有任何运气。目前我正在尝试做的{
使用int val = new BigDecimal(stringValue).intValue();
返回-134589568
,因为它无法保存结果。将代码切换到long val = new BigDecimal(hashes).longValue();
会得到-5600541095311551616,这也是不正确的
我假设这是由于一个双倍体和一个长形体相比的大小
有什么想法吗
# 1 楼答案
您的值超过了
long
的最大大小。在这种情况下不能使用long
。 试一试之后,你可以打电话
或
如果需要的话
# 2 楼答案
您是否尝试使用
String.format
:输出
编辑
为什么不使用
BigDecimal
进行算术运算,例如:输出
# 3 楼答案
那么: