Правильный ответ:
select table_record_id,
group_concat(if(value_name='note', value_text, NULL)) as note
,group_concat(if(value_name='hire_date', value_text, NULL)) as hire_date
,group_concat(if(value_name='termination_date', value_text, NULL)) as termination_date
,group_concat(if(value_name='department', value_text, NULL)) as department
,group_concat(if(value_name='reporting_to', value_text, NULL)) as reporting_to
,group_concat(if(value_name='shift_start_time', value_text, NULL)) as shift_start_time
,group_concat(if(value_name='shift_end_time', value_text, NULL)) as shift_end_time
from other_value
where table_name = 'employee'
and is_active = 'y'
and is_deleted = 'n'
GROUP BY table_record_id
Проблема в том, что формула Херона хороша только тогда, когда сумма двух чисел больше третьей. Вам нужно проверить это явно.
Лучше, если вы используете код для этого, используя Обработка исключений
try:
s = sqrt(d*(d-a)*(d-b)*(d-c))
print "a+b+c =", a, b, c
print "Distr. =", d*2, "Area =", s
except ValueError:
print "Please enter 3 valid sides"
Если вы хотите сделать это без try
, вы можете сделать это как
delta = (d*(d-a)*(d-b)*(d-c))
if delta>0:
s = sqrt(delta)
print "a+b+c =", a, b, c
print "Distr. =", d*2, "Area =", s
else:
print "Please enter 3 valid sides"
Я получил ту же ошибку с моим кодом, пока не использовал cmath
вместо math
, как сказал aneroid:
import sys
import random
import cmath
x = random.randint(1, 100)
y = random.randint(1, 100)
a = 2 * x * cmath.sqrt(1 - x * 2 - y * 2)
b = 2 * cmath.sqrt(1 - x * 2 - y * 2)
c = 1 - 2 * (x * 2 + y * 2)
print ( 'The point on the sphere is: ', (a, b, c) )
Таким образом, мой код правильно работал.
cmath
вместо math
.
– MSeifert
21 December 2016 в 02:28
Используйте cmath вместо этого.
import cmath
num=cmath.sqrt(your_number)
print(num)
Теперь, независимо от того, является ли число отрицательным или положительным, вы получите результат ...
Я думаю, проблема заключается в том, что вы не можете определить треугольник с любыми сторонами, которые пользователь вводит. Попробуйте сделать треугольник с длиной сторон, 10,2 и 1. Невозможно. Поэтому иногда Формула Херона не может работать, потому что треугольника нет.