Integer conversion without precision loss for literal function inputs
27 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
AB
el 20 de Nov. de 2025
Comentada: Matt J
el 19 de Dic. de 2025 a las 15:15
The function uint64 can take a literal input that is not representable by double and convert without precision loss, like
uint64(7725400999518902274)
Unfortunately, this functionality does not seem to extend to a function with an argument block and type validation.
function test(a)
arguments
a (1,1) uint64
end
disp(a)
end
test(7725400999518902274)
I would have to do
test(uint64(7725400999518902274))
Does anyone know if there is a trick to get this functionality or I am otherwise missing something?
4 comentarios
Dyuman Joshi
el 20 de Nov. de 2025
"The function uint64 can take a literal input that is not representable by double and convert without precision loss"
That is not true, it can do that within [0, 2^64-1]
uint64(123456789012345678901)
uint64(2^64-1)
uint64(2^64+1)
Respuesta aceptada
Matt J
el 20 de Nov. de 2025
Editada: Matt J
el 20 de Nov. de 2025
test 7725400999518902274
function test(a)
arguments
a (1,:) string
end
a=eval("uint64("+ a + ")"),
end
8 comentarios
Paul
el 19 de Dic. de 2025 a las 4:02
Is there any reason to prefer command syntax? Function syntax seems to work fine.
test 7725400999518902274
test("7725400999518902274")
function test(a)
arguments
a (1,:) string
end
a=eval("uint64("+ a + ")"),
end
Más respuestas (1)
Walter Roberson
el 21 de Nov. de 2025
Does anyone know if there is a trick to get this functionality
There is no way of doing that.
Any way of doing that would have to affect the inputs at parse time. However, arguement blocks do not affect parse time. Arguement blocks apply conversions to whatever input was passed in. By the time the arguement block processing is applied, the parameter has already been parsed as double precision.
0 comentarios
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!