TRUNC()
предназначен для удаления десятичной части любого числа немедленно и без каких-либо изменений в недесятичной части.
Итак, согласно ответу LinYan , вам просто нужно использовать:
TRUNC(A1)
чтобы получить целую часть значения в A1
A1-TRUNC(A1)
получить дробную часть значения в A1
В отличие от этого FLOOR()
, TRUNC()
работает как с положительными, так и с отрицательными числами, не требуя настройки, и работает одинаково в Microsoft Excel и LibreOffice.
FLOOR()
требует, чтобы у параметра значимости был тот же знак, что и у обрабатываемого числа (иначе возникнет ошибка), поэтому 1
в конце придется изменить его -1
на обработку отрицательных чисел, или вы можете добавить SIGN()
и без необходимости дополнительно усложнить формулу.
А в OpenOffice и LibreOffice FLOOR()
также имеется дополнительный (по сравнению с Excel) третий параметр «mode», который изменяет результаты, возвращаемые функцией для отрицательных чисел.
Например, представьте, что А1 равен 167,583:
int(A1)
даст 167 иmod(A1,1)
0,583.источник
int(1.6) === 1
иint(-1.6) === -2
... Ноtrunc(decimal;0)
работает правильно для обоих.Не думайте, что для этого есть особая функция, однако, вложив пару, вы можете.
Предполагая, что вы пытаетесь вернуть значение десятичного значения для ячейки A1, формула будет иметь вид:
По сути, здесь вы используете функцию MID для возврата некоторого количества символов, начиная с десятичной точки. Все 3 ссылки на A1 должны быть обновлены для каждой ячейки, на которую вы нацелены, чтобы она работала правильно.
источник
разве это не было бы просто идеально и эстетично?
источник