在Java中获取不带四舍五入的浮点数,通常是指将浮点数转换为整数时,采用截断的方式而非四舍五入。以下是几种常见的方法:
将浮点数强制转换为整数类型(如int
或long
),Java会自动截断小数部分。
public class TruncateExample {
public static void main(String[] args) {
double number = 123.789;
int truncatedNumber = (int) number;
System.out.println("Truncated number: " + truncatedNumber); // 输出: 123
}
}
Math.floor()
方法Math.floor()
方法返回小于或等于参数的最大整数,即向下取整。
public class FloorExample {
public static void main(String[] args) {
double number = 123.789;
int truncatedNumber = (int) Math.floor(number);
System.out.println("Truncated number: " + truncatedNumber); // 输出: 123
}
}
Math.ceil()
方法Math.ceil()
方法返回大于或等于参数的最小整数,即向上取整。虽然这不是严格意义上的截断,但在某些情况下也可以使用。
public class CeilExample {
public static void main(String[] args) {
double number = 123.234;
int truncatedNumber = (int) Math.ceil(number);
System.out.println("Truncated number: " + truncatedNumber); // 输出: 124
}
}
BigDecimal
类BigDecimal
类提供了精确的浮点数运算,可以通过设置舍入模式来控制截断。
import java.math.BigDecimal;
import java.math.RoundingMode;
public class BigDecimalExample {
public static void main(String[] args) {
double number = 123.789;
BigDecimal bd = new BigDecimal(Double.toString(number));
int truncatedNumber = bd.setScale(0, RoundingMode.DOWN).intValue();
System.out.println("Truncated number: " + truncatedNumber); // 输出: 123
}
}
通过以上方法,您可以在Java中获取不带四舍五入的浮点数。选择哪种方法取决于具体的需求和场景。
领取专属 10元无门槛券
手把手带您无忧上云