diff --git a/src/main/java/org/olat/modules/forms/ui/TextInputController.java b/src/main/java/org/olat/modules/forms/ui/TextInputController.java
index a96a1bdea2fca1cebae249e6de3828640b1bebf8..a97f43116420f79ba58f3b9118bbbef698a3302d 100644
--- a/src/main/java/org/olat/modules/forms/ui/TextInputController.java
+++ b/src/main/java/org/olat/modules/forms/ui/TextInputController.java
@@ -21,6 +21,7 @@ package org.olat.modules.forms.ui;
 
 import java.math.BigDecimal;
 
+import org.olat.core.commons.persistence.DB;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.TextAreaElement;
@@ -54,6 +55,8 @@ public class TextInputController extends FormBasicController implements Evaluati
 	private boolean singleRow;
 	private EvaluationFormResponse response;
 	
+	@Autowired
+	private DB dbInstance;
 	@Autowired
 	private EvaluationFormManager evaluationFormManager;
 
@@ -105,14 +108,20 @@ public class TextInputController extends FormBasicController implements Evaluati
 	protected boolean validateFormLogic(UserRequest ureq) {
 		boolean allOk = super.validateFormLogic(ureq);
 		
+		singleRowEl.clearError();
 		if (textInput.isNumeric()) {
 			String val = singleRowEl.getValue();
 			if(StringHelper.containsNonWhitespace(val)) {
-				try {
-					Double.parseDouble(val);
-				} catch (NumberFormatException e) {
-					singleRowEl.setErrorKey("error.no.number", null);
+				if (dbInstance.isMySQL() && val.length() > 65) {
+					singleRowEl.setErrorKey("error.number.too.large", null);
 					allOk = false;
+				} else {
+					try {
+						Double.parseDouble(val);
+					} catch (NumberFormatException e) {
+						singleRowEl.setErrorKey("error.no.number", null);
+						allOk = false;
+					}
 				}
 			}
 		}
diff --git a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_de.properties
index ac26024a3e4dda8d52f73fbcff5dfb0e0fab7888..a2e7c705d9738e4f0d5a95d2950c6c397f9cae5f 100644
--- a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_de.properties
@@ -31,6 +31,7 @@ end.label=End
 error.cannot.save=Speichern fehlgeschlagen
 error.no.number=Falsches Zahlenformat. Beispiele\: 1.0, 0.5, 0.2
 error.outside.range=Der Wert muss zwischen {0} und {1} liegen.
+error.number.too.large=Die Zahl ist zu gross.
 error.range.overlapping=Zwei Wertebereiche \u00FCberlappen sich.
 error.wrong.int=Falsches Zahlenformat. Beispiele\: 1, 5, 10
 evaluation.anonymous= Dies ist eine anonyme Umfrage, die Umfrageantworten sind anonymisiert. Es werden keine pers\u00F6nlichen Daten \u00FCber Sie gespeichert, es sei denn, es wird ausdr\u00FCcklich danach gefragt (z. B. Alter, Geschlecht). Auch die IP-Adresse des von Ihnen verwendeten PC wird nicht gespeichert. Es gibt somit keinen Weg, die Umfrageergebnisse mit Ihren Daten zusammenzuf\u00FChren.
diff --git a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_en.properties
index 6bca28ac4e62a8dc686520e1a07e5c694f5f6d00..ad67fe4624ccfe05510937b81d9f306cb3ff6a8a 100644
--- a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_en.properties
@@ -30,6 +30,7 @@ end.label=End
 error.cannot.save=Error while saving.
 error.no.number=Wrong number format. Example\: 1.0, 0.5, 0.2
 error.outside.range=The value has to be between {0} and {1}.
+error.number.too.large=The number is too large.
 error.range.overlapping=Two ranges are overlapping.
 error.wrong.int=Wrong numerical format. Examples\: 1, 5, 10
 evaluation.anonymous=This is an anonymous survey. No personal information about you will be stored unless explicitly requested (e.g. age, gender). Also, the IP address of your PC is not saved. There is no way to merge the survey results with your data.
diff --git a/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml b/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml
index 1bb3f61782243b19bff33da445caaa57e1f66c07..fdfdcd32f153408cf7ba6adb97ad213ba0c73d99 100644
--- a/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml
+++ b/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml
@@ -204,6 +204,10 @@
 					<constructor-arg index="0" value="OLAT_14.1.3" />
 					<property name="alterDbStatements" value="alter_14_1_x_to_14_1_3.sql" />
 				</bean>
+				<bean id="database_upgrade_14_1_6" class="org.olat.upgrade.DatabaseUpgrade">
+					<constructor-arg index="0" value="OLAT_14.1.6" />
+					<property name="alterDbStatements" value="alter_14_1_x_to_14_1_6.sql" />
+				</bean>
 			</list>
 		</property>
 	</bean>
diff --git a/src/main/resources/database/mysql/alter_14_1_x_to_14_1_6.sql b/src/main/resources/database/mysql/alter_14_1_x_to_14_1_6.sql
new file mode 100644
index 0000000000000000000000000000000000000000..ce57689abdb3858c21e7d7327f795d42072869cc
--- /dev/null
+++ b/src/main/resources/database/mysql/alter_14_1_x_to_14_1_6.sql
@@ -0,0 +1,2 @@
+-- Evaluation form
+alter table o_eva_form_response modify column e_numericalresponse decimal(65,10) null;
\ No newline at end of file
diff --git a/src/main/resources/database/mysql/setupDatabase.sql b/src/main/resources/database/mysql/setupDatabase.sql
index 5f619e2b8cd9de53a99aa63044f1c2d7b85f270c..22048c3a2ea89d59ac61669ab838beaeaca49da9 100644
--- a/src/main/resources/database/mysql/setupDatabase.sql
+++ b/src/main/resources/database/mysql/setupDatabase.sql
@@ -2085,7 +2085,7 @@ create table o_eva_form_response (
    lastmodified datetime not null,
    e_no_response bit default 0,
    e_responseidentifier varchar(64) not null,
-   e_numericalresponse decimal default null,
+   e_numericalresponse decimal(65,10) default null,
    e_stringuifiedresponse mediumtext,
    e_file_response_path varchar(4000),
    fk_session bigint not null,
diff --git a/src/main/resources/database/oracle/alter_14_1_x_to_14_1_6.sql b/src/main/resources/database/oracle/alter_14_1_x_to_14_1_6.sql
new file mode 100644
index 0000000000000000000000000000000000000000..3ec35e08629edf8331a9de39ce97393a41355a71
--- /dev/null
+++ b/src/main/resources/database/oracle/alter_14_1_x_to_14_1_6.sql
@@ -0,0 +1,2 @@
+-- Evaluation form
+-- nothing to do
\ No newline at end of file
diff --git a/src/main/resources/database/postgresql/alter_14_1_x_to_14_1_6.sql b/src/main/resources/database/postgresql/alter_14_1_x_to_14_1_6.sql
new file mode 100644
index 0000000000000000000000000000000000000000..3ec35e08629edf8331a9de39ce97393a41355a71
--- /dev/null
+++ b/src/main/resources/database/postgresql/alter_14_1_x_to_14_1_6.sql
@@ -0,0 +1,2 @@
+-- Evaluation form
+-- nothing to do
\ No newline at end of file