(Sorry, I can't create anything less than a BLOCKER bug report.)
I would expect that creating a `BigDecimal` from a `Double` would produce a `BigDecimal` that returns `BigDecimal.isValidDouble = true`, e.g.
(Note: in the following, we don't care about loss of precision when inputting a double literal, the fact that whatever is stored is represented as a `Double` is enough)
println(BigDecimal(10.1: Double).isValidDouble) // false
but the above actually prints `false`.
WORKAROUND: I use my own replacement for `.isValidDouble` which is to create a new BigDecimal from the output of a `toDouble` conversion
val sd = BigDecimal(10.1: Double)
println(sd == BigDecimal(sd.toDouble)) // true
If the `BigDecimal` -> `Double` conversion loses precision, then this test fails. e.g.
val ssd = BigDecimal("1.0000000000000003")
println(ssd == BigDecimal(ssd.toDouble)) // false