Информация об изменениях

Сообщение Re[2]: Типы чисел в DSL от 02.12.2023 22:12

Изменено 02.12.2023 22:19 Alekzander

Re[2]: Типы чисел в DSL
Здравствуйте, Pzz, Вы писали:

Pzz>Я бы шел от пользовательского интерфейса (который, в данном случае — твоя система типов, видимая пользователям). А когда там устаканится, уже думал бы о деталях реализации.


Идеальный GUI — это когда ты выбираешь тип number, а потом вводишь любые дробные и целые числа в пределах диапазона, и они складываются без потери точности. Но ты же сам пишешь, что "не получится". Тогда какой смысл со стороны GUI смотреть, не думая о реализуемости? Мне нужно оптимальное решение, т.е. наилучший GUI, но не вообще, а из тех, что технически реализуемы и не приведут к граблям.

Pzz>А вот важны эти тонкости пользователям или нет — зависит от самих пользователей и от решаемых ими задач. И это надо как-то с ними обсудить.


Когда ты пишешь тул типа калькулятора, глупо обсуждать с юзерами, что они будут на нём считать, а что нет. Я просто предвижу, что рано или поздно кто-нибудь напишет ==, и это приведёт к проблемам. Кстати, может просто реализовать == через эпсилон, а вывод загрублять на один-два разряда по сравнению с родной точностью double'а того размера, который поддерживается в sqlite'е? Такое будет работать?

Pzz>Fixed point. Это когда счет идет, например, в сотых. Или в тысячных. Но конкретный выбор фиксируется на уровне типа и не меняется в процессе рассчетов, в отличии от float. Можно объединить с целыми, они — частный случай фиксированной точки.


Я понимаю, что fixed point. Что с ним делать-то? Отдельным типом юзерам дать? Financial number? Нельзя сделать вообще всё (универсальный number) на базе fixed point?

Если что, меня устроит ссылка на какой-нибудь фундаментальный труд "Типы чисел и их представления", если это где-то разжёвано, пойду просвещаться.
Re[2]: Типы чисел в DSL
Здравствуйте, Pzz, Вы писали:

Pzz>Я бы шел от пользовательского интерфейса (который, в данном случае — твоя система типов, видимая пользователям). А когда там устаканится, уже думал бы о деталях реализации.


Идеальный GUI — это когда ты выбираешь тип number, а потом вводишь любые дробные и целые числа в пределах диапазона, и они складываются без потери точности. Но ты же сам пишешь, что "не получится". Тогда какой смысл со стороны GUI смотреть, не думая о реализуемости? Мне нужно оптимальное решение, т.е. наилучший GUI, но не вообще, а из тех, что технически реализуемы и не приведут к граблям.

Pzz>А вот важны эти тонкости пользователям или нет — зависит от самих пользователей и от решаемых ими задач. И это надо как-то с ними обсудить.


Когда ты пишешь тул типа калькулятора, глупо обсуждать с юзерами, что они будут на нём считать, а что нет. Я просто предвижу, что рано или поздно кто-нибудь напишет ==, и это приведёт к проблемам. Кстати, может просто реализовать == через эпсилон, а вывод загрублять на один-два разряда по сравнению с родной точностью double'а того размера, который поддерживается в sqlite'е? Такое будет работать?

Pzz>Fixed point. Это когда счет идет, например, в сотых. Или в тысячных. Но конкретный выбор фиксируется на уровне типа и не меняется в процессе рассчетов, в отличии от float. Можно объединить с целыми, они — частный случай фиксированной точки.


Я понимаю, что fixed point. Что с ним делать-то? Отдельным типом юзерам дать? Financial number? Или уж сразу объединить с видом валюты, сделать точность два знака после точки, и назвать этот тип currency? Будет number (т.е. double) и currency (т.е. int * 100 + enum валюты).

А нельзя сделать вообще всё (универсальный number) на базе fixed point?

Если что, меня устроит ссылка на какой-нибудь фундаментальный труд "Типы чисел и их представления", если это где-то разжёвано, пойду просвещаться.