当前位置: 首页 > 面试题库 >

将double转换为Int,四舍五入

包承望
2023-03-14
问题内容

如何将double值转换为int执行以下操作:

Double If x = 4.97542. Convert to int x = 4.

Double If x = 4.23544. Convert to int x = 4.

也就是说,答案总是四舍五入。


问题答案:

如果你明确地 doubleint,小数部分将被截去。例如:

int x = (int) 4.97542;   //gives 4 only
int x = (int) 4.23544;   //gives 4 only

此外,如果Math.floor()需要double返回值,也可以使用方法舍入值。



 类似资料:
  • 问题内容: 我需要在Java中将double转换为int,但是数值必须始终四舍五入。即99.99999999-> 99 问题答案: 强制转换为int会隐式删除任何小数。无需调用Math.floor()(假设为正数) 只需使用(int)进行类型转换,例如: 话虽这么说,它的行为与向负无穷大舍入

  • 问题内容: 现在我正在尝试: 在哪里,但它不起作用。我究竟做错了什么? 问题答案: 代码段中方法的返回类型是什么? 如果是这种方法,则当输入参数为Double时将返回Long。 因此,您将必须强制转换返回值:

  • 问题内容: 所以我的问题是:为什么不执行编译错误? 问题答案: 四种情况中的三种正确报告了错误。复合分配是该规则的唯一例外。Java语言规范,第15.26.2部分,解释了以下原因: 15.26.2复合赋值运算符 形式的复合赋值表达式等效于,其中是的类型,不同之处在于该表达式仅被评估一次。 例如,以下代码是正确的: 并导致x的值为7,因为它等效于: 如您所见,通过隐式插入强制类型转换可以避免该错误。

  • 考虑此代码段: 在我的机器上运行这个会打印两个转换的。但是和只能是吗? 据我所知,这是一个扩展的原语转换,规范中说: 拓宽的基元转换不会丢失有关数值的整体大小的信息。 以及 将int或long值加宽为float或将long值加宽为double可能会导致精度损失 据我所知,上述规范意味着将始终成为,但可以转换为其他内容(例如或类似内容)。我的规格解释正确吗?

  • 为什么我不能四舍五入这个双到最近的int使用Math.round,我得到这个错误"不能从long转换为int"

  • 问题内容: 我编写的这段代码将转换为获取异常。 这是我的代码 问题答案: 是基元之上的 包装 类。可以将其强制转换为,但不能直接强制转换为。 如果使用代替,它将编译: 您也可以在中间添加演员表,如下所示: