I started using Sonar recently in a project, and i got a PMD rule broken about using the constructor new BigDecimal(double val). When i read the java documentat
Because if you already begin with a double value as data, you have already lost that precission. So not having it would force you to convert it to String for BigDecimal to convert it back.
And also, maybe sometimes you just need that value.