Ответ слишком прост для меня, поэтому я создал более общий динамический оператор SQL, который проверяет, имеет ли человек какие-либо перекрывающиеся даты.
SELECT DISTINCT T1.EmpID
FROM Table1 T1
INNER JOIN Table2 T2 ON T1.EmpID = T2.EmpID
AND T1.JobID <> T2.JobID
AND (
(T1.DateFrom >= T2.DateFrom AND T1.dateFrom <= T2.DateTo)
OR (T1.DateTo >= T2.DateFrom AND T1.DateTo <= T2.DateTo)
OR (T1.DateFrom < T2.DateFrom AND T1.DateTo IS NULL)
)
AND NOT (T1.DateFrom = T2.DateFrom)
Если у вас Python 2.6 или новее, используйте формат
:
'{0:.3g}'.format(num)
Для Python 2.5 или старше:
'%.3g'%(num)
Пояснение:
{0}
сообщает формат
] для вывода первого аргумента - в данном случае num
.
Все, что находится после двоеточия (:), указывает format_spec
.
.3
устанавливает точность равной 3.
g
удаляет незначительные нули. См.
http://en.wikipedia.org/wiki/Printf#fprintf
Например:
tests=[(1.00, '1'),
(1.2, '1.2'),
(1.23, '1.23'),
(1.234, '1.23'),
(1.2345, '1.23')]
for num, answer in tests:
result = '{0:.3g}'.format(num)
if result != answer:
print('Error: {0} --> {1} != {2}'.format(num, result, answer))
exit()
else:
print('{0} --> {1}'.format(num,result))
дает
1.0 --> 1
1.2 --> 1.2
1.23 --> 1.23
1.234 --> 1.23
1.2345 --> 1.23
Используя Python 3.6 или новее, вы можете использовать f -strings
:
In [40]: num = 1.234; f'{num:.3g}'
Out[40]: '1.23'
Вот функция, которая поможет:
def myformat(x):
return ('%.2f' % x).rstrip('0').rstrip('.')
И вот ваши примеры:
>>> myformat(1.00)
'1'
>>> myformat(1.20)
'1.2'
>>> myformat(1.23)
'1.23'
>>> myformat(1.234)
'1.23'
>>> myformat(1.2345)
'1.23'
Изменить:
Из просмотра ответов других людей Поэкспериментировав, я обнаружил, что g делает все стриптиз за вас. Итак,
'%.3g' % x
тоже прекрасно работает и немного отличается от того, что предлагают другие (с использованием материала '{0: .3}'. Format ()). Думаю, сделай твой выбор.
Просто используйте стандартные методы форматирования строк Python :
>>> "{0:.2}".format(1.234232)
'1.2'
>>> "{0:.3}".format(1.234232)
'1.23'
Если вы используете версию Python ниже 2.6, используйте
>>> "%f" % 1.32423
'1.324230'
>>> "%.2f" % 1.32423
'1.32'
>>> "%d" % 1.32423
'1'