全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:6799
推到 Plurk!
推到 Facebook!

如何自動四捨五入

答題得分者是:小傑克
g9614721
一般會員


發表:27
回覆:51
積分:15
註冊:2008-07-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-09 14:12:13 IP:140.125.xxx.xxx 訂閱
我用SQL 計算出來的數量 (顯示在DBEDIT )上
但= =小數點太多位~
會變成這樣

例如avg(數量)AS平均數量
計算完=120.3333333333333.......
顯示在DBEDIT上變成 [0.333333333]

如何讓他只自動計算到小數點兩位就好~或是整數也ok~
我的資料庫是PARADOX7 用QUERY計算

st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-09 14:48:25 IP:118.168.xxx.xxx 未訂閱
您好,

假設 query 為 query1, dbedit 為 dbedit1.

1. doubleclick query1, 會跳出一個視窗.
2. 跳出的視窗上按 mouse 右鍵, 選 add all fields.
3. 點連到 dbedit1 的欄位.
4. 修改其 displayformat 屬性.
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
frappe
中階會員


發表:88
回覆:114
積分:95
註冊:2008-10-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-09 15:57:04 IP:115.83.xxx.xxx 訂閱
不知道paradox有沒有Round函數

round(avg(數量),2) as 平均數量

===================引 用 g9614721 文 章===================
我用SQL 計算出來的數量 (顯示在DBEDIT )上
但= =小數點太多位~
會變成這樣

例如avg(數量)AS平均數量
計算完=120.3333333333333.......
顯示在DBEDIT上變成 [0.333333333]

如何讓他只自動計算到小數點兩位就好~或是整數也ok~
我的資料庫是PARADOX7 用QUERY計算

小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-03-09 17:19:50 IP:59.115.xxx.xxx 訂閱
在 Field 的 OnGetText 事件上改一下就可以
[code delphi]
if Sender.AsString <> '' then
Text := FloatToStr(Round(Sender.AsFloat)); // RoundTo(Sender.AsFloat,-2) 這樣可以取小數兩位數
[/code]

===================引 用 g9614721 文 章===================
我用SQL 計算出來的數量 (顯示在DBEDIT )上
但= =小數點太多位~
會變成這樣

例如avg(數量)AS平均數量
計算完=120.3333333333333.......
顯示在DBEDIT上變成 [0.333333333]

如何讓他只自動計算到小數點兩位就好~或是整數也ok~
我的資料庫是PARADOX7 用QUERY計算
------
額有朝天骨,眼中有靈光
chenyk
高階會員


發表:14
回覆:95
積分:171
註冊:2002-07-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-03-10 14:36:25 IP:125.230.xxx.xxx 訂閱
試試

SELECT FORMAT(AVG(數量), 2) AS 平均數量 FROM...


===================引 用 g9614721 文 章===================
我用SQL 計算出來的數量 (顯示在DBEDIT )上
但= =小數點太多位~
會變成這樣

例如avg(數量)AS平均數量
計算完=120.3333333333333.......
顯示在DBEDIT上變成 [0.333333333]

如何讓他只自動計算到小數點兩位就好~或是整數也ok~
我的資料庫是PARADOX7 用QUERY計算

g9614721
一般會員


發表:27
回覆:51
積分:15
註冊:2008-07-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-03-10 18:35:46 IP:140.125.xxx.xxx 訂閱
感謝 frappe chenyk 小傑克 st33chen...

frappe , chenyk 的方法 似乎不可行~會發生錯誤!
小傑克給我的方法是取整數的 可以用!感謝!

我修改成
if Sender.AsString <> '' then
Text := FloatToStr(Roundto(Sender.AsFloat,-2)); // RoundTo(Sender.AsFloat,-2) 這樣可以取小數兩位數
run 時會產生錯誤。。。@@後面的註解意思是??
===================引 用 小傑克 文 章===================
在 Field 的 OnGetText 事件上改一下就可以
[code delphi]
if Sender.AsString <> '' then
Text := FloatToStr(Round(Sender.AsFloat)); // RoundTo(Sender.AsFloat,-2) 這樣可以取小數兩位數
[/code]

===================引 用 g9614721 文 章===================
我用SQL 計算出來的數量 (顯示在DBEDIT )上
但= =小數點太多位~
會變成這樣

例如avg(數量)AS平均數量
計算完=120.3333333333333.......
顯示在DBEDIT上變成 [0.333333333]

如何讓他只自動計算到小數點兩位就好~或是整數也ok~
我的資料庫是PARADOX7 用QUERY計算
jackiemi2_seed
中階會員


發表:37
回覆:97
積分:76
註冊:2006-09-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-03-25 13:40:14 IP:61.218.xxx.xxx 訂閱
  round 四捨六入,五成雙
round(3.4)=>3
round(3.5)=>4
round(4.5)=>4
round(4.6)=>5

//四捨五入,取到小數第二位,
//.2f:整數10位,小數2位,第三位四捨五入
format('.2f',[4.455])

//四拾五入,需uses Math
showmessage(inttostr(Trunc(SimpleRoundTo(4.5,0))));
------
OS : Win 7 pro
Program : Delphi 7
DataBase : Ms Sql 2008
編輯記錄
jackiemi2_seed 重新編輯於 2009-03-25 13:41:52, 註解 無‧
roviury
一般會員


發表:3
回覆:49
積分:15
註冊:2008-08-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-04-05 20:40:46 IP:203.186.xxx.xxx 訂閱
效率高,不用use maths

{
a:=120.3333333;
a:=a*100;//12033.3333
a:=round(a);//12033
a:=a/100;//120.33
}
round(a*100)/100
這個比用format快得多
jackiemi2_seed
中階會員


發表:37
回覆:97
積分:76
註冊:2006-09-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2009-04-06 21:37:16 IP:211.74.xxx.xxx 訂閱
roviury兄:
請問一下4.5四捨五入取到整數,
如何用您的方法得到5??
===================引 用 roviury 文 章===================
效率高,不用use maths

{
a:=120.3333333;
a:=a*100;//12033.3333
a:=round(a);//12033
a:=a/100;//120.33
}
round(a*100)/100
這個比用format快得多
------
OS : Win 7 pro
Program : Delphi 7
DataBase : Ms Sql 2008
chenyk
高階會員


發表:14
回覆:95
積分:171
註冊:2002-07-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2009-04-07 09:18:25 IP:125.230.xxx.xxx 訂閱
x := 4.5
A := Trunc(x 0.5)

這是某本書上教的,適用大部分浮點數做四捨五入
系統時間:2024-04-26 12:11:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!