Re[3]: Типы чисел в DSL
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 03.12.23 19:21
Оценка: +1
Здравствуйте, Pauel, Вы писали:

vsb>>Посоветую взять JavaScript и всё. Число это просто double (64-битная плавающая точка).


P>А если понадобится финансовый инструмент?


P>Если один тип, то лучше закладываться на long double


Нет, нет, только не это

#include <iostream>

int main()
{
  std::cout << "sizeof(long double)" << sizeof(long double) << "\n";
  std::cout << "sizeof(double)" << sizeof(double) << "\n";
  return 0;
}


x86-64 clang 13.0.0
sizeof(long double)16
sizeof(double)8


x86-64 gcc 13.2
sizeof(long double)16
sizeof(double)8


MSVC 2005
sizeof(long double)8
sizeof(double)8


MSVC 2017
sizeof(long double)8
sizeof(double)8


BCC 5.5 (да, древнее говно)
sizeof(long double)10
sizeof(double)8


Я когда-то весело попрыгал по граблям, когда прибор выдавал двоичные данные и там был long double, у меня был MSVC, а прошивку прибора писали на бомановском 3.1

Помимо несовместимости разных компиляторов, ты решишь, что 640long double уже точно хватит всем, но это не так, в лучшем случае грабли вылезут чуть попозже, если long double на твоей платформе больше обычного double.

В общем, очень плохая идея. Хуже всех остальных. И таки да, для бабла ничего лучше LongNumber не придумали, а в условном калькуляторе это никак не повлияет на производительность, а от кучи гемора тебя он избавит. Я бы его использовал и не парился
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.