How do i convert scientific notation into number in matlab

267 次查看(过去 30 天)
a=9.22222e+15
I need to convert this number and want to save the answer in variable
  1 个评论
Stephen23
Stephen23 2016-8-10
编辑:Stephen23 2016-8-10
"I need to convert this number"
what do you want to convert to:
  1. a string
  2. another numeric class
  3. something else... ?

请先登录,再进行评论。

回答(3 个)

Stephen23
Stephen23 2016-8-10
编辑:Stephen23 2016-8-10
The variable a is already a numeric:
>> a = 9.22222e+15
a = 9.2222e+015
>> isnumeric(a) %check that it is a numeric
ans = 1
>> fprintf('%.0f\n',a)
9222220000000000
Why do you think that it is not a numeric ? You might like to read about the different format options, which control how numeric values are displayed in MATLAB:
Remember that how a numeric value is displayed is a totally different matter to how it is stored. For example, here are three different ways of displaying your numeric value:
>> format bank
>> a = 9.22222e+15
a = 9222220000000000.00
>> format hex
>> a = 9.22222e+15
a = 434061c7b591fc00
>> format longg
>> a = 9.22222e+15
a = 9.22222e+015
  7 个评论
Stephen23
Stephen23 2017-9-13
编辑:Stephen23 2017-9-13
"MATLAB understand a value such as 1.0400e+4 as the whole number 10400 that it is, instead of as a non-whole number."
It certainly looks like a whole number:
>> sprintf('%.30f',1.0400e+4)
ans =
10400.000000000000000000000000000000
>> rem(1.0400e+4,1)==0
ans =
1
How would you expect it to be different from this?
"I believe what Jasmeet was asking is..."
Jasmeet did not mention "integer" or "whole" anywhere, and gave an example value that is slightly higher than flintmax, making the output value rather meaningless in terms of "whole number or not". If that is what Jasmeet and yourself are asking about then the solution is to learn about the properties of floating point numbers

请先登录,再进行评论。


Anish Vaidya
Anish Vaidya 2017-11-26
编辑:Anish Vaidya 2017-11-26
Even, I've the same problem. I want to store a number in a variable in decimal notation and then convert to array of characters.
  1 个评论
Walter Roberson
Walter Roberson 2017-11-26
What form is the value in at present?
When you convert it to character, how many decimal places of precision do you need?
What is the range of values possible?

请先登录,再进行评论。


Surama Biswas
Surama Biswas 2020-9-11
Following example by Stephen Cobeldick works for me. I need to place each bit by last fprintf in an array. Please help me. Thanks in advance.
>> a = 9.22222e+15
a = 9.2222e+015
>> isnumeric(a) %check that it is a numeric
ans = 1
>> fprintf('%.0f\n',a)
9222220000000000
  2 个评论
Walter Roberson
Walter Roberson 2020-9-11
Note that the result would be a character vector.
If the task is to store numeric 9222220000000000 as a double precision variable, then a = 9.22222e+15 already does that. The way that a variable displays is not the same thing as the value stored in the variable.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by