为了账号安全,请及时绑定邮箱和手机立即绑定

如何将浮点数转换为 int 及其考虑的小数?

如何将浮点数转换为 int 及其考虑的小数?

Cats萌萌 2021-10-28 17:28:57
例如,我有 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.


查看完整回答
反对 回复 2021-10-28
?
三国纷争

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向下舍入的形式返回值。


查看完整回答
反对 回复 2021-10-28
?
万千封印

TA贡献1891条经验 获得超3个赞

这是将数字乘以 10 直到余数除以 1 产生 0 的另一种方法:


static long toLong(double d) {

    if (d % 1 != 0) {

        return toLong(d * 10);

    }


    return (long) d;

}


查看完整回答
反对 回复 2021-10-28
  • 3 回答
  • 0 关注
  • 276 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信