获得双倍的整数和小数部分

时间:2015-04-23 09:02:26

标签: matlab math

我有这个:  0.8765号 我想检索双重部分以及分数部分的整个部分,而不是前面的0.有谁知道我怎么做到这一点? 我已经能够使用SELECT * FROM tableName GROUP BY YEAR(date), tag; 获得整个部分。唯一缺少的是分数部分。

2 个答案:

答案 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))

答案 1 :(得分:0)

- 使用Fix获取整个部分 WholePart =修复(A)

- 获取小数部分 FractionalPart = A-WholePart

- 将fractionalpart转换为字符串 strFractionalPart = num2str(FractionalPart)

- 第二个字符“0”后的所有字符的子串strFractionalPart substring(strFractionalPart,3,length(strFractionalPart)-2)