Using string() on double values without automatic rounding?

10 visualizzazioni (ultimi 30 giorni)
Hello,
When i use string() with double values, the number is converted to a string where the number is rounded to four decimals, even when there are more decimals in the original double value. Image:
I am currently writing a conversion script where i need the extra decimals. Is it possible to disable this automatic rounding?
Thank you.

Risposta accettata

Matt J
Matt J il 8 Mag 2023
even when there are more decimals in the original double value
There are no more decimals in the original double value. A double value can only have 15 digits of precision.
  3 Commenti
Matt J
Matt J il 8 Mag 2023
Modificato: Matt J il 8 Mag 2023
You could use num2str,
string( num2str(123.123123123,'%.9f') )
ans = "123.123123123"

Accedi per commentare.

Più risposte (1)

Stephen23
Stephen23 il 9 Mag 2023
Rather than slow NUM2STR and then STRING, for a scalar the simpler and more efficient approach is to just call SPRINTF:
sprintf("%.9f",123.123123123)
ans = "123.123123123"
For non-scalar values use COMPOSE:

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Prodotti


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by