我用下面这行代码将float转换为int,但它并不像我希望的那样精确:

 float a=8.61f;
 int b;

 b=(int)a;

结果是:8(应该是9)

当值为a = -7.65f时,结果为:-7(应为-8)

最好的方法是什么?

推荐答案

使用Math.round()将浮点四舍五入到最接近的整数.

Java相关问答推荐

Android -如何修复Java.time.zone. ZoneRulesExcept:未知时区ID:Europe/Kyiv

Cosmos Change Feed Process Lag远远超过收集中的记录数量

try 使用Java 9或更高版本对特殊对象图进行解析时出现NullPointerException

即使我正在使用并发方法,使用Javascript的应用程序也会继续冻结'

@org.springframework.beans.factory.annotation.Autowired(required=true)-注入点有以下注释:-SpringBoot

存根基类的受保护方法

在Java Swing Paint应用程序中捕获快速鼠标移动时遇到困难

如何调整工作时间日历中的时间

SpringBoot+Java 17@Valid未验证POJO

声明MessageChannel Bean的首选方式

尽管通过中断请求线程死亡,但线程仍将继续存在

我怎样才能让IntelliJ标记toString()的任何实现?

如何在我的世界中为互动增加冷却时间?

垃圾收集时间长,会丢弃网络连接,但不会在Kubernetes中反弹Pod

Java堆中的许多java.time.ZoneRegion实例.ZoneId实例不应该被缓存吗?

将关闭拍卖的TimerService

无法播放音频:从资源加载库GStreamer-Lite失败

我的代码是线程安全的吗?[Java、CAS、转账]

处理4.3问题:javax.xml.ind包不存在(&Q;).您可能在学习GitHub教程时遗漏了库.&Q

[Guice/MissingImplementation]:未绑定任何实现