2015-04-23 106 views
2

我有這個: 0.8765數字 我想檢索整個部分的雙重以及小數部分沒有0在它的前面。有誰知道我該怎麼做? 我已經可以使用fix(A)獲取整個部分。唯一缺少的是小數部分。獲取整個和小數部分的一個雙重

+0

'0.8765 - 0'犯規相當剪。 –

回答

1

那麼,爲什麼不只是減法?

A = 1.8345 
BeforeComma = num2str(fix(A)) 
AfterComma = strrep(num2str(A - BeforeComma),['0.'],'') 

一點更優雅是使用regexp

A = 1.8345 
splittedNumber = regexp(num2str(A),'\.','split') 
[BeforeComma, AfterComma] = splittedNumber{:} 

A = 

    1.8345 


BeforeComma = 

1 


AfterComma = 

8345 

如果你想與數字的預定數量增加一倍,你可以這樣做:

A = 1.834512 
digits = 4 
B = round(A,digits) 
splittedNumber = str2double(regexp(num2str(A),'\.','split')); 
[BeforeComma, AfterComma] = deal(splittedNumber(1), splittedNumber(2)) 
+0

'0.8765 - 0' does not quite cut it –

+0

@TonyOkoth所以你想要後來得到字符串? – thewaywewalk

+0

是的,但沒有'0。它的前面。所以不僅要得到它,還要把它整體化。 –

0

--get與修復 WholePart =修復(A)

的wholepart --get小數部分 FractionalPart = A-WholePart

- 轉換fractionalpart串 strFractionalPart = num2str(FractionalPart)

--Substring strFractionalPart對於後第2個字符的所有字符「0」。 子(strFractionalPart,3,長度(strFractionalPart)-2)