мотошкола.ру 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 ] |
Заголовок сообщения: | |
т.к. не я сей шедевр сотворил, сказать зачем делить на ноль не могу ![]() ![]() а выглядит это так: ![]() видимо индусы не очень хорошо знают как делить числа отличные от целых ![]() |
Автор: | r2 [ Вт ноя 10, 2009 4:07 pm ] |
Заголовок сообщения: | |
Человек очень хорошо знающий ексель выдвинул мнение о большом вселенском заговоре! например, эксель был создан по заказу коррумпированных чиновников и полубандитских коммерсов, где эта единица в 14 разряде позволяла бы пи..ить бабло с миллиардных счетов почти без палева |
Автор: | Obey-Kun [ Вт ноя 10, 2009 6:13 pm ] |
Заголовок сообщения: | |
Sleg писал(а): т.к. не я сей шедевр сотворил, сказать зачем делить на ноль не могу
![]() ![]() а выглядит это так: ![]() видимо индусы не очень хорошо знают как делить числа отличные от целых ![]() Индусы всё прекрасно знают. Тут, вероятно, дело в способе, который использует процессор при операциях с числами с плавающей запятой. |
Автор: | Sleg [ Вт ноя 10, 2009 6:45 pm ] |
Заголовок сообщения: | |
Obey-Kun писал(а): Sleg писал(а): т.к. не я сей шедевр сотворил, сказать зачем делить на ноль не могу ![]() ![]() а выглядит это так: ![]() видимо индусы не очень хорошо знают как делить числа отличные от целых ![]() Индусы всё прекрасно знают. Тут, вероятно, дело в способе, который использует процессор при операциях с числами с плавающей запятой. Код: 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 так что дело именно в руках! ![]() |
Автор: | 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/ |