Для «нативных» двойников проблем нет (пробовал в scalainter 2.7.5):
scala> val a = 34D
a: Double = 34.0
scala> val b=54D
b: Double = 54.0
scala> val c = a+b
c: Double = 88.0
scala> val c=a*b
c: Double = 1836.0
То, как java.lang.Double представлен, кажется немного странным, хотя ...
scala> val t:java.lang.Double = new java.lang.Double(4)
t: java.lang.Double = 4.0
scala> val s:java.lang.Double = new java.lang.Double(4)
s: java.lang.Double = 4.0
scala> val i = s+t
<console>:6: error: type mismatch;
found : java.lang.Double
required: String
val i = s+t
^
scala> val i = s.doubleValue+t.doubleValue
i: Double = 8.0
Похоже, преобразование в "родные" двойники - лучший подход ...