获取整个和小数部分的一个双重

问题描述:

我有这个: 0.8765数字 我想检索整个部分的双重以及小数部分没有0在它的前面。有谁知道我该怎么做? 我已经可以使用fix(A)获取整个部分。唯一缺少的是小数部分。获取整个和小数部分的一个双重

+0

'0.8765 - 0'犯规相当剪。 –

那么,为什么不只是减法?

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。它的前面。所以不仅要得到它,还要把它整体化。 –

--get与修复 WholePart =修复(A)

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

- 转换fractionalpart串 strFractionalPart = num2str(FractionalPart)

--Substring strFractionalPart对于后第2个字符的所有字符“0”。 子(strFractionalPart,3,长度(strFractionalPart)-2)