cDecimal и Точность [дубликат]

самый безопасный способ поставить! для отрицания регулярного выражения в [[]] следующим образом:

 , если [[!  $ {STR} = ~ YOUR_REGEX]];  то  

в противном случае он может выйти из строя в определенных системах.

1
задан iperelivskiy 8 October 2013 в 10:21
поделиться

2 ответа

Вторая строка дает вам точное десятичное значение двоичного числа с плавающей запятой, которое приблизительно равно 114,3. Это почти все о двоичной с плавающей запятой, а не о десятичном. Подробнее см. В docs .

Позже: при использовании Python 3, см. эти документы . Та же самая основная вещь, но у Python 3 есть больше инструментов, которые помогут вам исследовать случаи «как это».

2
ответ дан Tim Peters 16 August 2018 в 04:33
поделиться

Когда вы выполняете Decimal(114.3), вы создаете регулярный объект с плавающей точкой и затем передаете его в десятичный. Точность теряется из-за двоичной неточности с плавающей запятой, когда создается float 114.3, прежде чем Decimal когда-либо ее увидит. Невозможно вернуть эту точность. Вот почему Decimal принимает строковые представления как входные данные, поэтому он может видеть, что вы на самом деле набрали, и использовать правильный уровень точности.

3
ответ дан BrenBarn 16 August 2018 в 04:33
поделиться
  • 1
    Точность level не имеет к этому никакого отношения. – Tim Pietzcker 5 October 2013 в 22:32
Другие вопросы по тегам:

Похожие вопросы: