Просто играть; Вот алгоритмический метод для нахождения минимального и максимального положительного числа с плавающей точкой, мы надеемся, что в любой реализации на Python, где float("+inf")
приемлемо:
def find_float_limits():
"""Return a tuple of min, max positive numbers
representable by the platform's float"""
# first, make sure a float's a float
if 1.0/10*10 == 10.0:
raise RuntimeError("Your platform's floats aren't")
minimum= maximum= 1.0
infinity= float("+inf")
# first find minimum
last_minimum= 2*minimum
while last_minimum > minimum > 0:
last_minimum= minimum
minimum*= 0.5
# now find maximum
operands= []
while maximum < infinity:
operands.append(maximum)
try:
maximum*= 2
except OverflowError:
break
last_maximum= maximum= 0
while operands and maximum < infinity:
last_maximum= maximum
maximum+= operands.pop()
return last_minimum, last_maximum
if __name__ == "__main__":
print (find_float_limits()) # python 2 and 3 friendly
В моем случае
$ python so1835787.py
(4.9406564584124654e-324, 1.7976931348623157e+308)
, так что денормали используются.
Чтобы получить доступ к одному из ресурсов XAML UserControl в выделенном коде, все, что вам нужно сделать, это получить доступ к свойству Resources элемента UserControl. Примерно так:
BitmapImage myImage = (BitmapImage)this.Resources["imageDefault"];
Тем не менее, предпочтительным методом является использование FindResource (), который будет искать совпадение с ключом по всему логическому дереву, а не только по объекту, для которого он вызывается.
BitmapImage myImage = (BitmapImage)this.FindResource("imageDefault");
Итак, у вас есть ResourceDictionary, определенный в сборке UserControl, и вы хотите получить к нему доступ из кода программной части этого UserControl?
Вы должны уметь. Однако, если указанный вами код находится в конструкторе, у вас может не быть доступа к словарю ресурсов (возможно, он еще не загружен). Попробуйте добавить тот же код в событие «загружено» вашего UserControl и посмотрите, работает ли это. Если вы просто пытаетесь получить доступ к ресурсу, например к стилю или шаблону, с помощью функций « FindResource » или « TryFindResource » непосредственно из вашего класса также должны работать (т. Е. вам не обязательно иметь объект типа ResourceDictionary).
Надеюсь, это поможет!
d'Oh ... после компиляции в локальную корзину, чтобы ссылки были относительными, я реализовал решение URI пакета, найденное здесь: ResourceDictionary в отдельной сборке , а затем FindResource (x: здесь ключевое значение).
@PeterAllenWeb, @Pwninstein, спасибо за ваши быстрые ответы и за то, что заставили меня снова задуматься.