At least form me, it gets more complicated:
import java.Math.BigDecimal
import org.openhab.core.library.types.*
rule "HeatingDescription"
when
Item Office_Heat_Left_ActTemp received update or
Item Office_Heat_Left_TargetTemp received update or
Item Office_Heat_Left_Fault received update or
Item Office_Heat_Left_StateBat received update or
Item Office_Heat_Left_Valve received update or
Item Office_Heat_Left_Boost received update or
Item Office_Heat_Left_LowBat received update or
System started
then
val BigDecimal Heat_Left_ActTemp = if (Office_Heat_Left_ActTemp.state instanceof DecimalType) (Office_Heat_Left_ActTemp.state as DecimalType).toBigDecimal else new BigDecimal(0)
val BigDecimal Heat_Left_TargetTemp = if (Office_Heat_Left_TargetTemp.state instanceof DecimalType) (Office_Heat_Left_TargetTemp.state as DecimalType).toBigDecimal else BigDecimal(0)
var String formattedString = String::format("%1$.0f°C / %2$.0f°C", Heat_Left_ActTemp, Heat_Left_TargetTemp)
logInfo(">>> HeatingDescription <<<", formattedString)
Office_Heat_Left.postUpdate(new StringType(formattedString))
end
leads to:
2016-01-23 14:57:30.947 [ERROR] [m.r.internal.engine.RuleEngine] - Error during the execution of startup rule 'HeatingDescription': Could not invoke method: java.lang.String.format(java.util.Locale,java.lang.String,java.lang.Object[]) on instance: null