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

例如,我有 12.12 浮点值我希望它变成 1212 一个整数值

如果我有 156.2345,我希望它是 1562345。

我搜索了很多,但只发现四舍五入和转换为 int 但没有回答我的问题。

此外,如果我们有 12.12000 那么应该只得到 1212 而不是 1212000

问题是我将从 stdinput 读取 double 或 float ,我必须按照上述规则将其转换为适当的 int

尝试过 Float.intValue()其他方法,但仅提供 12 个


Cats萌萌
浏览 278回答 3
3回答

蝴蝶不菲

使用以下:floatValue.toString().replaceAll("[0]*$", "").replace(".", "");第一次替换将从浮点值中删除所有尾随 0,而第二次替换将删除dot.

三国纷争

我不确定这样做是否是个好主意,但你可以这样做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向下舍入的形式返回值。

万千封印

这是将数字乘以 10 直到余数除以 1 产生 0 的另一种方法:static long toLong(double d) {    if (d % 1 != 0) {        return toLong(d * 10);    }    return (long) d;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java