Использует ли десятичная математика FPU? - PullRequest
4 голосов
/ 06 февраля 2012

Использует ли десятичная математика FPU?

Я думаю, что ответ - да, но я не уверен, поскольку десятичная дробь - это не число с плавающей запятой, а число с фиксированной точностью.

Я в основном ищу .NET, но общий ответ тоже был бы полезен.

Ответы [ 2 ]

3 голосов
/ 16 февраля 2012

Что касается .NET и, в частности, C #, нет, System.Decimal не использует FPU, потому что тип эмулируется в программном обеспечении.

Также System.Decimal равно aЧисло с плавающей запятой, а не число с фиксированной точностью, как обычно встречается в базе данных.Тип на самом деле представляет собой десятичную с плавающей запятой , которая использует 10 для своей базы, в отличие от двоичной плавающей запятой (то есть System.Single или System.Double), которая использует 2 в качестве своей базы.У него все еще есть те же проблемы точности, если вы пытаетесь сохранить дробь, которая не может быть точно представлена, например, 1/3.

1 голос
/ 06 февраля 2012

Да, современные языки в целом поддерживают математика с плавающей точкой и целочисленная математика , и все;нет прямой поддержки фиксированной точки, BCD и т. д. Математика с плавающей точкой будет выполняться с использованием инструкций процессора с плавающей точкой;современные архитектуры не включают отдельный FPU.

...