diff --git a/hutool-core/src/main/java/cn/hutool/core/img/Img.java b/hutool-core/src/main/java/cn/hutool/core/img/Img.java index 0d4b0bdab..c2d4fb67c 100644 --- a/hutool-core/src/main/java/cn/hutool/core/img/Img.java +++ b/hutool-core/src/main/java/cn/hutool/core/img/Img.java @@ -37,6 +37,7 @@ import java.io.File; import java.io.InputStream; import java.io.OutputStream; import java.io.Serializable; +import java.math.BigDecimal; import java.net.URL; import java.nio.file.Path; @@ -302,7 +303,10 @@ public class Img implements Serializable { double heightRatio = NumberUtil.div(height, srcHeight); double widthRatio = NumberUtil.div(width, srcWidth); - if (widthRatio == heightRatio) { + // 浮点数之间的等值判断,基本数据类型不能用==比较,包装数据类型不能用equals来判断。 + BigDecimal heightRatioBigDecimal = new BigDecimal(heightRatio); + BigDecimal widthRatioBigDecimal = new BigDecimal(widthRatio); + if (heightRatioBigDecimal.compareTo(widthRatioBigDecimal) == 0) { // 长宽都按照相同比例缩放时,返回缩放后的图片 scale(width, height); } else if (widthRatio < heightRatio) {