diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/optimizations/RedundantFieldInitializerRule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/optimizations/RedundantFieldInitializerRule.java
index f9d18882f5..b12443b8eb 100644
--- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/optimizations/RedundantFieldInitializerRule.java
+++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/optimizations/RedundantFieldInitializerRule.java
@@ -100,7 +100,7 @@ public class RedundantFieldInitializerRule extends AbstractJavaRule {
value = (int) literal.getImage().charAt(1);
}
- if (value.longValue() == 0) {
+ if (value.doubleValue() == 0) {
addViolation(data, variableDeclarator);
}
}
diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/optimizations/xml/RedundantFieldInitializer.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/optimizations/xml/RedundantFieldInitializer.xml
index ad2450bc61..72cd71aa88 100644
--- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/optimizations/xml/RedundantFieldInitializer.xml
+++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/optimizations/xml/RedundantFieldInitializer.xml
@@ -1299,6 +1299,16 @@ public class Bar {
+
+
+
+ #1443 RedundantFieldInitializer: False positive for small floats
+ 0
+
diff --git a/src/site/markdown/overview/changelog.md b/src/site/markdown/overview/changelog.md
index 91a4594c44..9f5fd8c76f 100644
--- a/src/site/markdown/overview/changelog.md
+++ b/src/site/markdown/overview/changelog.md
@@ -24,6 +24,8 @@
annotated with @VisibleForTesting
* java-finalizers/AvoidCallingFinalize
* [#1440](https://sourceforge.net/p/pmd/bugs/1440/): NPE in AvoidCallingFinalize
+* java-optimizations/RedundantFieldInitializer
+ * [#1443](https://sourceforge.net/p/pmd/bugs/1443/): RedundantFieldInitializer: False positive for small floats
* java-unusedcode/UnusedPrivateField
* [#1428](https://sourceforge.net/p/pmd/bugs/1428/): False positive in UnusedPrivateField when local variable
hides member variable