Является ли -10 между 1,5 × 10 ^ -45 и 3,4 × 10 ^ 38? - PullRequest
1 голос
/ 05 марта 2019

-10 между 1,5e-45 и 3,4e + 38?

Если да, объясните мне, почему.Я не так хорош в математике.Итак, извините за слабость уровня этих вопросов.

Согласно C # документации (о компьютерном программировании для этого языка) на сайте Microsoft , их переменные типа floatот 1,5 × 1e-45 до 3,4 × 1e + 38?

Но, 1e-3 равно 0,001 и 1e-6 равно 0,000001 .Это означает, что чем больше мы уменьшаем отрицательный показатель, тем меньше будет полученное значение, но оно все равно будет больше нуля.

Возникает проблема, я попытался использовать переменную с плавающей запятой, которая задает -10 как значение, ожидающее ошибки, но, к моему удивлению, -10 было принято.Я в замешательстве.

Ответы [ 3 ]

3 голосов
/ 05 марта 2019

В документации явно не сказано, но два типа с плавающей точкой подписаны.Таким образом, -10 может быть представлен типом с плавающей точкой так же, как 10.

1 голос
/ 05 марта 2019

Есть несколько вещей, на которые стоит обратить внимание.

Во-первых, float (и в этом отношении double) подписано, поэтому значения могут быть положительными или отрицательными (или нулем).

Другое дело, что дальность зависит от точности. Если вы попытаетесь установить для float значение, которое меньше абсолютного значения, чем оно может обработать, например 1E-50, оно будет установлено на ноль, а не на ошибку; это то, что вы получаете, когда округляете 1 × 10 -50 с точностью, с которой оно может справиться, в то время как если вы попытаетесь дать ему значение, превышающее абсолютное значение, с которым оно может справиться, например 1E50, то для него будет задано значение ∞ (или -∞ для -1E50), потому что, опять же, это так же точно, как оно может представлять нечто такое большое.

0 голосов
/ 05 марта 2019

Эта документация на C # написана плохо и содержит некоторые ошибки или упущения:

  • Диапазон, который он описывает, предназначен только для величины положительных конечных чисел. Форматы с плавающей точкой также включают ноль, отрицательные числа и бесконечности. Таким образом, истинный диапазон составляет от −∞ до + ∞.
  • Он использует приблизительные десятичные значения для описания диапазона. Истинные значения для float:
    • Наименьшее представимое положительное число равно 2 −149 , что составляет 1,40129846432481707092372958328991613128026194187651577175706828388979108268586060148663818836212158203125e-45.
    • Наибольшее представимое конечное число равно 2 128 −2 104 , что составляет 340282346638528859811704183484516925440.
...