Здравствуйте, 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 не придумали, а в условном калькуляторе это никак не повлияет на производительность, а от кучи гемора тебя он избавит. Я бы его использовал и не парился