мотошкола.ру
http://info.motoshkola.ru/forum/

Кто может объяснить
http://info.motoshkola.ru/forum/viewtopic.php?f=5&t=7779
Страница 1 из 1

Автор:  Sleg [ Вт ноя 10, 2009 12:14 pm ]
Заголовок сообщения:  Кто может объяснить

Столкнулись тут на работе с такой интересной ситуацией:
в ёксиле, в отчете происходят вычисления, ну как обычно, но при вот такой операции (1025,15-978,715) если в результирующей ячейке поставить точность 13 или 14 знаков, то в 13 разряде 1 0_о
всё бы ничего, если бы это просто для глаза, но потом из этого числа вычитают такое же(за исключением именно этой единицы в 13 разряде)
и на результат делят, а при делении на 0,0000000000001 получается просто ппц :)
может хто знает такой баг? или как с этим бороться?

Автор:  voldemar [ Вт ноя 10, 2009 2:12 pm ]
Заголовок сообщения: 

Заканчивайте с синтетикой и переходите на натуральные продукты.

Автор:  r2 [ Вт ноя 10, 2009 2:46 pm ]
Заголовок сообщения: 

щас попросил друга проверить на 2007 екселе - говорит не так

PS. а зачем вообще делить на ноль?

Автор:  Sleg [ Вт ноя 10, 2009 3:39 pm ]
Заголовок сообщения: 

т.к. не я сей шедевр сотворил, сказать зачем делить на ноль не могу :mrgreen: , но если учесть что сей документ является государственной отчетностью, то пути наших творцов отчетности неисповедимы :)
а выглядит это так:
Изображение
видимо индусы не очень хорошо знают как делить числа отличные от целых :)

Автор:  r2 [ Вт ноя 10, 2009 4:07 pm ]
Заголовок сообщения: 

Человек очень хорошо знающий ексель выдвинул мнение о большом вселенском заговоре!
например, эксель был создан по заказу коррумпированных чиновников и полубандитских коммерсов, где эта единица в 14 разряде позволяла бы пи..ить бабло с миллиардных счетов почти без палева

Автор:  Obey-Kun [ Вт ноя 10, 2009 6:13 pm ]
Заголовок сообщения: 

Sleg писал(а):
т.к. не я сей шедевр сотворил, сказать зачем делить на ноль не могу :mrgreen: , но если учесть что сей документ является государственной отчетностью, то пути наших творцов отчетности неисповедимы :)
а выглядит это так:
Изображение
видимо индусы не очень хорошо знают как делить числа отличные от целых :)

Индусы всё прекрасно знают. Тут, вероятно, дело в способе, который использует процессор при операциях с числами с плавающей запятой.

Автор:  Sleg [ Вт ноя 10, 2009 6:45 pm ]
Заголовок сообщения: 

Obey-Kun писал(а):
Sleg писал(а):
т.к. не я сей шедевр сотворил, сказать зачем делить на ноль не могу :mrgreen: , но если учесть что сей документ является государственной отчетностью, то пути наших творцов отчетности неисповедимы :)
а выглядит это так:
Изображение
видимо индусы не очень хорошо знают как делить числа отличные от целых :)

Индусы всё прекрасно знают. Тут, вероятно, дело в способе, который использует процессор при операциях с числами с плавающей запятой.

Код:
public static void main(String[] args) {
        BigDecimal b1 = new BigDecimal("1025.15");
        BigDecimal b2 = new BigDecimal("978.715");
        BigDecimal b3 = b1.subtract(b2);
        System.out.println(b3.setScale(19, RoundingMode.HALF_UP));

    }

как и должно быть получается 46.4350000000000000000
так что дело именно в руках! :mrgreen:

Автор:  Obey-Kun [ Вт ноя 10, 2009 7:00 pm ]
Заголовок сообщения: 

А MSO типа на яве наисан? Это вы с ООо путаете. А MSO, вообще сказать, написан на дотнете (C#, C++ и проч.).

Код:
#include <stdio>
int main() {
  float b1 = 1025.150;
  float b2 =  978.715;
  float b3 = b1-b2;
  printf("%.12f - %.12f = %.12f\n", b1, b2, b3);
}


Код:
obey@damnasus test % g++ ./main.cpp
obey@damnasus test % ./a.out
1025.150024414062 - 978.715026855469 = 46.434997558594


От компилятора и процессора зависит результат.

Страница 1 из 1 Часовой пояс: UTC + 4 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/