2013-09-19 2 views
1

Я пытаюсь сделать базовую программу преобразования в Python для вычисления длины волны фотона при заданной частоте (и наоборот), так как мой калькулятор действительно расстраивает работать с. Он работал нормально для моего первого расчета:Попытка сделать базовый преобразователь длины волны/частоты, большие значения являются проблематичными

Convert to frequency or wavelength? (hz/wl) hz 
What is the wavelength? 7.24e-07 
414364640883977.0 

Но когда я попытался преобразовать в длину волны и дал ему частоту 4.80e15, он просто вернулся «0.0»:

Convert to frequency or wavelength? (hz/wl) wl 
What is the frequency? 4.80e015 
0.0 

Есть проблема где-то? Я импортировал математику и цифры на всякий случай, чтобы что-то исправить, но, похоже, это не помогло.

def converter(): 
    import numbers 
    import math 
    conversion = input("Convert to frequency or wavelength? (hz/wl) ") 

    if conversion == "hz": 
     wl = eval(input("What is the wavelength? ")) 
     c = 3.00e08 
     hz = c // wl 
     print(hz) 
    if conversion == "wl": 
     hz = eval(input("What is the frequency? ")) 
     c = 3.00e08 
     wl = c // hz 
     print(wl) 

converter() 

Я попробовал несколько других значений, а также уменьшение масштаба в целом (что делаю все 10 ^-меньше), но это ничего не изменило.

ответ

1

// - это разделение полов на Python. Неужели вы хотите плавающее подразделение?

>>> 3e8 // 4.8e15 # returns the floor 
0.0 
>>> 3e8/4.8e15 
6.25e-08 

Другими словами, заменить // на / в вашем коде. Бьюсь об заклад, вы станете счастливее ;-)

+0

Спасибо, связка, это исправлено! – Detta

 Смежные вопросы

  • Нет связанных вопросов^_^