我需要在Java中将double转换为int,但是数值必须始终四舍五入。即99.99999999-> 99
强制转换为int会隐式删除任何小数。无需调用Math.floor()(假设为正数)
只需使用(int)进行类型转换,例如:
System.out.println((int)(99.9999)); // Prints 99
话虽这么说,它的行为与Math.floor
向负无穷大舍入
问题内容: 如何将值转换为执行以下操作: 也就是说,答案总是四舍五入。 问题答案: 如果你明确地 投 来,小数部分将被截去。例如: 此外,如果需要返回值,也可以使用方法舍入值。
问题内容: 现在我正在尝试: 在哪里,但它不起作用。我究竟做错了什么? 问题答案: 代码段中方法的返回类型是什么? 如果是这种方法,则当输入参数为Double时将返回Long。 因此,您将必须强制转换返回值:
问题内容: 我想将双精度值四舍五入到2个小数点。 例如:我有双d = 2;结果应为result = 2.00 问题答案: 内部表示形式在2和2.00之间没有差异。您可以使用四舍五入的值到最接近的整数- 使该轮为2位小数,你可以乘100,圆形,再除以100,但你不应该期望的结果是 准确 2DPS,由于二进制浮点运算的性质。 如果您只想将值 格式化 为两位小数,请查看-如果您对 计算中 的小数位数感兴
问题内容: 我正在实现一个接口,该接口的功能类似于可以包含某种对象的表的功能。该接口指定以下功能: 在我的实现中,我感到很困惑的是,我将表数据存储在2D 数组()中。当我需要返回值时,我想执行以下操作(假定只在包含double的列上调用,因此将没有): 但是- Java不允许强制转换为。将其强制转换为可以,因为它是一个对象,而不是基元,但是我的接口指定数据将以形式返回。 所以我有两个问题: 有什么
本节讨论了精度数学的四舍五入特性,ROUND()函数,以及插入DECIMAL列时的四舍五入特性。 ROUND()函数的行为取决于其参量是准确的还是近似的: ·对于准确值数值,ROUND()采用“半值向上舍入”规则:如果小数部分的值为.5或更大,如果是正数,向上取下一个整数,如果是负数,向下取下一个整数(换句话讲,以0为界限执行舍入)。如果小数部分的值小于.5,如果是正数,向下取下一个整数,如果是负
问题内容: 我怎么总是将a舍入为一个,而不舍入它。我知道,但是我希望它总是四舍五入。因此,如果为,则四舍五入为4。 问题答案: 您可以使用方法。 请参阅JavaDoc链接:https ://docs.oracle.com/javase/10/docs/api/java/lang/Math.html#ceil(double ) 从文档: 细胞 返回大于或等于自变量且等于数学整数的最小(最接近负无穷大