Answers:
TRUNC()
旨在立即删除任何数字的小数部分,并且不对非小数部分进行任何修改。
因此,根据LinYan的答案,您只需要使用:
TRUNC(A1)
获得值的整数部分 A1
A1-TRUNC(A1)
获得值的小数部分 A1
与不同FLOOR()
,TRUNC()
无需调整即可处理正数和负数,并且在Microsoft Excel和LibreOffice中以相同的方式工作。
FLOOR()
要求有效参数与要处理的数字具有相同的符号(否则将引发错误),因此1
最后必须将其更改-1
为处理负数,否则您可以插入SIGN()
并不必要地进一步使公式复杂化。
并且,在OpenOffice和LibreOffice中,FLOOR()
还有一个附加的(与Excel相比)第三个“模式”参数,该参数更改函数为负数返回的结果。
您可以尝试FLOOR
函数,floor(A1,1)
对于A1的整数部分,A1-floor(A1,1)
对于A1 的小数部分。
例如,假设A1为167.583:
int(A1)
给出167并且
mod(A1,1)
给出0.583。
int(1.6) === 1
,int(-1.6) === -2
但是... trunc(decimal;0)
两者都可以正常工作。
不要认为没有特定的功能可以执行此操作,但是可以嵌套一对。
假设您要返回单元格A1的小数位数,则公式为:
=MID(A1,SEARCH(".",A1,1)+1,LEN(A1))
实际上,您在这里所做的就是使用MID函数从小数点开始返回一定数量的字符。您需要针对每个目标单元更新对A1的所有3个引用,以使其正常工作。