diff --git a/src/main/java/org/olat/ims/qti21/model/xml/interactions/FIBAssessmentItemBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/interactions/FIBAssessmentItemBuilder.java index ecb586d18e9313ebeba49007cd7e1ca39ac047ea..2ebed1ecf27e688cd672e8d699f8486e3e5d792e 100644 --- a/src/main/java/org/olat/ims/qti21/model/xml/interactions/FIBAssessmentItemBuilder.java +++ b/src/main/java/org/olat/ims/qti21/model/xml/interactions/FIBAssessmentItemBuilder.java @@ -955,18 +955,32 @@ public class FIBAssessmentItemBuilder extends AssessmentItemBuilder { if(StringHelper.containsNonWhitespace(response)) { try { double firstNumber = Double.parseDouble(response); - double lTolerance = lowerTolerance == null ? 0.0d : lowerTolerance.doubleValue(); - double uTolerance = upperTolerance == null ? 0.0d : upperTolerance.doubleValue(); - return toleranceMode.isEqual(firstNumber, solution, - lTolerance, uTolerance, - true, true); + return match(firstNumber); + } catch(NumberFormatException nfe) { + if(response.indexOf(',') >= 0) {//allow , instead of . + try { + double firstNumber = Double.parseDouble(response.replace(',', '.')); + return match(firstNumber); + } catch (final NumberFormatException e1) { + //format can happen + } catch (Exception e) { + log.error("", e); + } + } } catch (Exception e) { log.error("", e); - return false; } } return false; } + + private boolean match(double firstNumber) { + double lTolerance = lowerTolerance == null ? 0.0d : lowerTolerance.doubleValue(); + double uTolerance = upperTolerance == null ? 0.0d : upperTolerance.doubleValue(); + return toleranceMode.isEqual(firstNumber, solution, + lTolerance, uTolerance, + true, true); + } } public static class TextEntry extends AbstractEntry {