If you do this, the parameter value will be treated as a double and will be rounded for the reason stated above. To create a BigDecimal with more signficant digits than can fit in a double, you'll need to use one of the other constructors.
Also, bd.doubleValue() returns a double. Assuming you get the BigDecimal created with the full 20 digits and then call doubleValue(), you'll encounter same problem -- the value will be rounded to fit into a double. To print the BigDecimal, use the toString() method instead:
[ October 26, 2006: Message edited by: Scott Johnson ]