diff --git a/+quantity/Discrete.m b/+quantity/Discrete.m
index 31db4d82a9687d80f09b07656ac478b5989a06b7..54ed820f358d4e653fc4194297531008da958bee 100644
--- a/+quantity/Discrete.m
+++ b/+quantity/Discrete.m
@@ -427,7 +427,13 @@ 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. Then, the object has a domain
+					% with a name that should be used.
+					if isempty(obj(1).domain.name)
 						gridNames = repmat({''}, length(newGrid));
 					else
 						gridNames = {obj(1).domain.name};
diff --git a/+unittests/+quantity/testSymbolic.m b/+unittests/+quantity/testSymbolic.m
index 87b447ca0367e560a8bdab3331dac98404d447a7..b4ed478d8796aec426470956a7faae9d2d85d50c 100644
--- a/+unittests/+quantity/testSymbolic.m
+++ b/+unittests/+quantity/testSymbolic.m
@@ -853,22 +853,32 @@ 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());
 testCase.verifyTrue(q.isConstant());
 
+%% 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());
 
@@ -935,6 +945,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)