delphi整型变量相除,要求结果为小数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi整型变量相除,要求结果为小数相关的知识,希望对你有一定的参考价值。
sqlsever表中字段‘概率’的数据类型是decimal9(18,6),现在用delphi将两整型变量相除,所得结果存放在表中。例如
var
a,b:integer;
p0:double;
begin
p0:='a/b'---------我知道这么写肯定不对,正确的是怎样呢?
adoquery1.SQL.add('update table1 set p=p0 where 。。。);
a,b:integer;
p0:double;
begin
p0:=a/b; // a/b 得的值会自动转为double赋给p0的. 如果要保留小数位数要用到Format函数.
adoquery1.SQL.add('update table1 set p='+currtostr(p0)+' where.....'); //sql中这么写,字符串的拼接问题,要把p0转为字符串. 参考技术A procedure TForm1.Button1Click(Sender: TObject);
var
m , n : Integer;
x : double;
begin
m := StrToInt(edt1.Text);
n := StrToInt(edt2.Text);
x := m/n;
edt3.Text := FloatToStr(x);
end;
没搞懂你要干什么,不过好像就是数据转换那你写的不对,上面的这个例子可以达到你的要求啊,希望能帮助你.....
参考资料:self.knowledge
参考技术B 好像办不到吧,为什么要用整形变量得到小数类型呢?规定你要这样做吗? 参考技术C 你写的是对的,只是SQL 不对循环小数——模拟除法
题目
输入整数a和b(0 ≤ a ≤ 3000,1 ≤ b ≤ 3000),输出a / b的循环小数表示以及循环节的长度。例如a = 5,b = 43,小数表示为0.(116279069767441860465),循环节的长度为21。
解题思路
用模拟除法,并用数组模拟每次存储每次相除的结果,每除一次与前面的所有元素比较一次,如果与数组中某一元素相等,即可停止循环,因为此时循环节已经找到,并用变量m、n分别记录循环节的起始和终止位置,然后就是按规定的格式输出。
代码实现
1 #include<stdio.h> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 using namespace std; 6 7 const int maxn = 3000 + 10; 8 int a, b; 9 int frac[maxn],pos[maxn],yu[maxn]; 10 11 int main() 12 { 13 while (scanf("%d%d",&a,&b) == 2) 14 { 15 int tmp = a; 16 memset(frac, 0, sizeof(frac)); 17 memset(pos, 0, sizeof(pos)); 18 memset(yu, 0, sizeof(yu)); 19 20 int cnt = 0; 21 frac[cnt++] = a / b; 22 a = a % b; 23 24 while (!pos[a] && a) 25 { 26 yu[cnt] = a; //记录每个余数 27 pos[a] = cnt; //记录每个余数的位置 28 frac[cnt++] = (a * 10) / b; //记录商 29 a = (a * 10) % b; 30 } 31 32 printf("%d %d = %d.", tmp, b, frac[0]); 33 for (int i = 1; i <= 50 && i < cnt; i++) 34 { 35 if (a & yu[i] == a) printf("("); //利用了循环节前一个和循环节最后一个的余数相同 36 printf("%d", frac[i]); 37 } 38 if (!a) 39 printf("(0"); 40 if (cnt > 50) 41 printf("..."); 42 printf(") "); 43 printf(" %d = number of digits in repeating cycle ", a == 0 ? 1 : cnt - pos[a]); 44 } 45 return 0; 46 }
参考链接:https://blog.csdn.net/qiweigo/article/details/43051043
以上是关于delphi整型变量相除,要求结果为小数的主要内容,如果未能解决你的问题,请参考以下文章