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

小數點造成失步的問題....

答題得分者是:dllee
mickey10112001
一般會員


發表:29
回覆:14
積分:8
註冊:2006-08-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-07-06 12:40:21 IP:218.170.xxx.xxx 訂閱
請問各位大大:
我要將小數點以後的值都往下加一列,請問我該如何做??
X1 : 4.9
X2 : 9.8
X3 : 9.8
X4 : 9.8
X5 : 9.8
X6 : 4.9

為了解決我後端讀檔時只能讀取整數的問題,我希望能將上列的小數點加在下列,然後取整數,減少失步的狀況發生:
例:
x1 : 4.9...........................取4......0.9往下一列加
x2 : 9.8 0.9 =10.6.......取10...0.6往下一列加
x3 : 9.8 0.6 =10.4.......取10...0.4往下一列加
x4 : 9.8 0.4 =10.2.......取10...0.2往下一列加
x5 : 9.8 0.2 =10
x6 : 4.9 0 =4.9.........取4.....0.9往下一列加

因為我的資料是顯示在Memo上的,所以我知道我可以利用(int(X1))和(float(X1)-int(X1))將整數和小數部分分開
但我不知道該如何將我取出來的小數往下加一列!!
因為我最後的處理無法讀出小數點,所以我想說把小數點往下加一列,然後取整數,這樣應該就不會造成失步~
但我在卡在不知道該如何把取出的小數加回原式的下一列~
還是大大有更好處理小數點的問題..請各位大大指教~
請各位大大提供意見..謝謝^^

編輯記錄
mickey10112001 重新編輯於 2007-07-06 12:42:02, 註解 無‧
mickey10112001 重新編輯於 2007-07-06 12:42:29, 註解 無‧
mickey10112001 重新編輯於 2007-07-06 12:43:01, 註解 無‧
dllee 重新編輯於 2007-07-06 13:02:30, 註解 分類成「問題」,提問請記得將分類設定為「問題」,謝謝合作。‧
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-07-06 13:11:17 IP:61.225.xxx.xxx 未訂閱
我只能跟你說用字串的方式去處理吧。
在你的數字中找出小數點。把它分成整數部份跟小數部份去處理。
對於小數點。通常都會用 float, 來處理。
一經 compiler 精度就不見了。
你要搞到精度。就是字串法最實在。
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-06 13:12:09 IP:220.134.xxx.xxx 訂閱
Memo 的資料存在 Lines, Lines 是 TStrings,  Lines 內 Strings[i] 是放每一行的資料
String[i] 是 AnsiString
AnsiString 可以使用 SubString(起始位置, 長度) 取得字串內部分的內容,例如:
第 0 行內容為 "X1 : 4.9" 則 Memo1->Lines->Strings[0].SubString(6,3) 即可取得 "4.9" 的字串
再使用 ToDouble() 即可得到轉出的浮點數,如 Memo1->Lines->Strings[0].SubString(6,3).ToDouble()
在得到數值後,按您已整理好的流程,即可完成您後續的運作。
需注意,SubString 取出的字串內容如果不是數值,作 ToDouble 時可能會發生 Exception,
請算好 SubString 應取出的數值正確位置及長度,即可避免此問題。
請參考線上 AnsiString 之說明,可得到更多相關資訊。
------
http://www.ViewMove.com
系統時間:2024-03-29 4:58:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!