Как настроить Long Double

  • Автор темы ru_looking_for
  • Дата начала
Статус
Закрыто для дальнейших ответов.
R

ru_looking_for

Есть проблема - размер long double может быть либо 8 байт, либо 10 байт. Если я пишу в билдере, то он как правило 10 байт, а если в VisualStudio, то 8. Весь MSDN перевернул, чтобы узнать как настроить, чтобы было 10? Но там везде только и говорят, что типа long double - это всего лишь эквивалент double. Но это же не так, раз билдер может, то и в VS должно быть.
 
D

DAle

<!--QuoteBegin-ru_looking_for+30:04:2006, 12:33 -->
<span class="vbquote">(ru_looking_for @ 30:04:2006, 12:33 )</span><!--QuoteEBegin-->Есть проблема - размер long double может быть либо 8 байт, либо 10 байт. Если я пишу в билдере, то он как правило 10 байт, а если в VisualStudio, то 8. Весь MSDN перевернул, чтобы узнать как настроить, чтобы было 10? Но там везде только и говорят, что типа long double - это всего лишь эквивалент double. Но это же не так, раз билдер может, то и в VS должно быть.
[snapback]34651" rel="nofollow" target="_blank[/snapback]​
[/quote]

По стандарту С++ sizeof(long double) >= sizeof(double). Конкретная реализация компилятора под конкретную платформу вправе сама выбирать размер типа long double. Поэтому полагаться на конкретный размер данного типа нельзя (за исключением случаев, когда проект компилируется одним конкретным компилятором, и в будущем это будет неизменно). В С++ компиляторе от Майкрософт sizeof(long double) действительно равен 8 и изменить это никак нельзя. Возможно есть какие-то расширения компилятора, позволяющие вести вычисления в 10(или более)-байтовых переменных, но я о них не знаю.
 
R

ru_looking_for

Ну ладно, я обошелся 8-байтовым типом, просто я оценил, и пришел к выводу, что мне вполне хватит точности обычного дабла. Но все равно спасибо.
 
T

Trupik

<!--QuoteBegin-ru_looking_for+4:05:2006, 18:43 -->
<span class="vbquote">(ru_looking_for @ 4:05:2006, 18:43 )</span><!--QuoteEBegin-->Ну ладно, я обошелся 8-байтовым типом, просто я оценил, и пришел к выводу, что мне вполне хватит точности обычного дабла.
[snapback]34957" rel="nofollow" target="_blank[/snapback]​
[/quote]
Что ж за вычиления такие, если не секрет?
А в Microsoft, насколько мне известно, уже давно sizeof(long double) = 8.
 
R

ru_looking_for

Что ж за вычиления такие, если не секрет?
А в Microsoft, насколько мне известно, уже давно sizeof(long double) = 8.
Я написал класс, который работает с различными системами координат и отображает их на видовое окно. Я хотел большую точность для того, чтобы имелась возможность делать как можно больший зум (увеличение) сцены. Потому что есть графики, поведение которых не возможно рассмотреть при точности double. Но наверняка найдется график, который нельзя будет точно прорисовать и при 10-бйтовом doule. Поэтому я сделал на 8. Возможности конечно сокращаются, ну и пусть. Есть еще типы, которые обеспечивают супер точность вещественных чисел, позволяют работать с большими целыми. Но у меня пока нет времени их осваивать, да и не надо мне это, я же не математическую библиотеку пишу :( .
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!