Рассматривая затраты на вычисления, вам нужно прекратить вычислять серию в точке. Чем больше вы идете, тем более точным будет результат, но чем больше ваша программа проводит время. Как насчет этой простой программы:
#include <stdio.h>
#include <math.h>
#define ITERATIONS 10 //control how far you go
float factorial(int n){
if (n==0)
return 1;
else
return n*factorial(n-1);
}
int main (){
float n;
float sum=0;
printf("Enter desired float: ");
scanf("%f", &n);
int c, i;
for (i=0; i<=ITERATIONS; i++) {
c = (i%2)==0? 1 : -1;
sum = sum + (c*pow(n,2*i+1))/(factorial(2*i+1));
}
printf("The value is %f\n", sum);
return 0;
}
Не пропустите DateTime.MinValue
. Это 1 января 0001 года, что меньше минимального значения для SQL Server datetime
(01.01.1753). Если вы не работаете с историческими данными, которые уходят так далеко, вы можете просто создать собственную константу для значение, как 1/1/1753 и использовать это.
DateTime.MaxValue
хорошо, потому что для типа .NET и SQL-сервера это 31.12.999.
Чаще всего мы просто используем datetime2
в качестве нашего типа в SQL Server.
на сервере sql у вас есть (как минимум) два типа DateTime
:
Каждый из этого типа может быть привязан к .Net DateTime
, но DateTime.MinValue
всегда 0001/01/01. Поэтому, если столбец sql настроен как дата и время, сервер sql выдает аргумент, когда вы пытаетесь написать DateTime.MinValue
.
Таким образом, вы можете:
DateTime.MinValue