例如,我有 12.12 浮点值我希望它变成 1212 一个整数值如果我有 156.2345,我希望它是 1562345。我搜索了很多,但只发现四舍五入和转换为 int 但没有回答我的问题。此外,如果我们有 12.12000 那么我也应该只得到 1212 而不是 1212000。问题是我将从 stdinput 读取 double 或 float ,我必须按照上述规则将其转换为适当的 int尝试过 Float.intValue()其他方法,但仅提供 12 个
3 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
使用以下:
floatValue.toString().replaceAll("[0]*$", "").replace(".", "");
第一次替换将从浮点值中删除所有尾随 0,而第二次替换将删除dot
.
三国纷争
TA贡献1804条经验 获得超7个赞
我不确定这样做是否是个好主意,但你可以这样做
double d = 12.12;
long n = Long.parseLong(BigDecimal.valueOf(d).toString().replaceAll("[.,]", ""));
这将删除任何小数位。您可以使用floatandint代替。
如果你想1.0成为1代替10,并且10.0是1代替10或者100可以添加
.replaceAll("[0]*$", "")
尝试过 Float.intValue() 等,但这仅给出 12
正如它应该。intValue以int向下舍入的形式返回值。
万千封印
TA贡献1891条经验 获得超3个赞
这是将数字乘以 10 直到余数除以 1 产生 0 的另一种方法:
static long toLong(double d) {
if (d % 1 != 0) {
return toLong(d * 10);
}
return (long) d;
}
添加回答
举报
0/150
提交
取消