Which book are you using, and how old is it?
Why are you using Readers, rather than a Scanner? A Scanner will give the input directly converted to the Java™ type required. Rather than your reading the line as a
String and trying to assign that to the openingBalance amount, which is a
double, so the compiler cannot achieve that (hence your error message), you can get the input converted directly without having to mess about with parseXXX method. So you can get the input in the correct type for money, which is not
float nor
double, but BigDecimal
And there is a serious error in that code. So as not to let people think you are getting that code without any effort, I shall "forget" to correct that error (which appears twice). And I have respelt some of your variable names.