diff --git a/+quantity/Discrete.m b/+quantity/Discrete.m
index 7e34944b3abde7be2199a7d5656942c1b5ed9a93..5531740e7acdd4ceac184a4ba4e59154400c27bf 100644
--- a/+quantity/Discrete.m
+++ b/+quantity/Discrete.m
@@ -427,7 +427,12 @@ classdef  (InferiorClasses = {?quantity.Symbolic}) Discrete ...
 					myDomain = misc.ensureIsCell(myDomain);
 					newGrid = myDomain;
 
-					if obj(1).isConstant()
+					% Check if the object has a domain with a name:
+					% If there is no name, the object has an empty quantity.Domain, i.e., it is a
+					% constant. Then, the gridNames should be ''
+					% The check "isConstant" can not be used here, because it also returns true, if
+					% the constant value is defined over a domain.
+					if isempty(obj(1).domain)
 						gridNames = repmat({''}, length(newGrid));
 					else
 						gridNames = {obj(1).domain.name};
diff --git a/+unittests/+quantity/testSymbolic.m b/+unittests/+quantity/testSymbolic.m
index 3f64a68c6fca0afbb0762c33cff60b6bcc2985fa..4b6aa3e7e9c3018ba8fc72286db098d635498944 100644
--- a/+unittests/+quantity/testSymbolic.m
+++ b/+unittests/+quantity/testSymbolic.m
@@ -879,21 +879,31 @@ testCase.verifyEqual(on( - fDisc), on(-f));
 end
 
 function testConstantValues(testCase)
-%%
+%% evaluation of a constant on the same grid
 syms z
 myDomain = quantity.Domain.defaultDomain(4, "z");
 q = quantity.Symbolic(magic(3), myDomain);
 
-%%
 magic7 = magic(3);
 magic700 = zeros(4, 3, 3);
 for k = 1:q(1).domain.gridLength()
 	magic700(k, :,:) = magic7;
 end
 
-%%
 testCase.verifyEqual(magic700, q.on());
 
+%% evaluation of a constant on a different grid
+myDomain2 = quantity.Domain.defaultDomain(7, "z");
+magic7 = magic(3);
+magic700 = zeros(myDomain2.n, 3, 3);
+for k = 1:myDomain2.n
+	magic700(k, :,:) = magic7;
+end
+q.on(myDomain2);
+
+testCase.verifyEqual(magic700, q.on(myDomain2));
+
+%%
 p = quantity.Symbolic([0 0 0 0 z], myDomain);
 testCase.verifyFalse(p.isConstant());
 
@@ -960,6 +970,9 @@ Q2D = quantity.Symbolic(magic(2), [Z, Zeta]);
 %%
 verifyEqual(testCase, shiftdim(Q.on(), 1), magic(2))
 verifyEqual(testCase, shiftdim(Q2D.on(), 2), magic(2))
+
+%% test the evaluation on numeric grids
+verifyEqual(testCase, shiftdim(Q.on(1), 1), magic(2))
 end
 
 function testSize(testCase)