170 похожих чатов

Всем привет! Изучаю числа с плавающей запятой. Будет тупой вопрос: Как я могу,

имея массив из цифр после запятой получить значение double?
Например, есть массив [4,2]
Мне нужно получить 0.42
И именно так, а не
0.4 + 0.02 = 0.42000000000000004

Без использований округлений и преобразования к строке и так далее. Возможно ли это?

15 ответов

15 просмотров

формально это невозможно, такая специфика работы дабла. стоит почитать подробно как он работает если вам нужна большая точность возьмите decimal

SeiOkami- Автор вопроса
Larymar GC
формально это невозможно, такая специфика работы д...

Но ведь я могу указать значение 0.42 в double. То есть такое значение в принципе возможно (каким бы внутри оно сложным не было)

SeiOkami
Но ведь я могу указать значение 0.42 в double. То ...

если ты посмотришь внимательно там все равно будет 4ка на концк

Нет, это отдельная проблема компьютерных вычислений. Вероятно, есть библиотека для такого

SeiOkami
Но ведь я могу указать значение 0.42 в double. То ...

посчитай сначала в децимал, потом приведи в дабл

SeiOkami- Автор вопроса
Сергей
посчитай сначала в децимал, потом приведи в дабл

Я пробовал, но упираемся в другую проблему:

SeiOkami
screenshot Я пробовал, но упираемся в другую проблему:

А изначально то какая твоя задача?

SeiOkami
screenshot Я пробовал, но упираемся в другую проблему:

ты с такой точностью дабл хочешь?)

про то, что кажется что работает выше объясняли)

SeiOkami- Автор вопроса
Andrew Shurunov
А изначально то какая твоя задача?

Написать своё преобразование String - Double, которое бы работало так же как Convert

SeiOkami- Автор вопроса
Сергей
про то, что кажется что работает выше объясняли)

Но я же получаю нужный результат, даже если он внутри выглядит иначе

SeiOkami- Автор вопроса

А где их можно посмотреть?

SeiOkami
А где их можно посмотреть?

https://source.dot.net/#System.Private.CoreLib/Double.cs,73cc31e0b47fd637,references

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта