線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1275
推到 Plurk!
推到 Facebook!

請問如何轉換個位數後面的小數點,不是空字串也不能為0??

答題得分者是:syntax
K1086
初階會員


發表:63
回覆:148
積分:42
註冊:2007-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-11 16:59:46 IP:220.131.xxx.xxx 訂閱
procedure TTwn_Anly_49_Fm1.HemisphereButton1Click(Sender: TObject);
var

FS0:STRING;
AS1:array[0..1] of string;
Begin
AS1[0]:=COPY((Lab_RS1.Caption),0,1);//抓差數第一位數
AS1[1]:=COPY((Lab_RS1.Caption),2,1);//抓差數第二位數
IF AS1[1]= '.' Then
as1[1]:='0';
FS0:= AS1[0] AS1[1]; //等差數相加去.豆點
===>假設AS1[0] 的值是 3 AS1[1] 的值是.
===>經字串轉換 FS0:= 30
===>然而 30 並非所要正確值 實際需要的值是 3 而已 所以不知要如何解決 .豆點的問題
===>請教各位 Delphi 高手 謝謝!


Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-12 11:00:08 IP:59.124.xxx.xxx 未訂閱
不太了解,是不是這樣

<textarea class="delphi" rows="10" cols="60" name="code"> var FS0:STRING; AS1:array[0..1] of string; Begin AS1[0]:=COPY((Lab_RS1.Caption),0,1);//抓差數第一位數 AS1[1]:=COPY((Lab_RS1.Caption),2,1);//抓差數第二位數 IF AS1[1]= '.' Then AS1[1] := ''; FS0:= AS1[0] AS1[1]; //等差數相加去.豆點 </textarea>
------
Fishman
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-12 17:14:38 IP:211.75.xxx.xxx 訂閱
若Lab_RS1.Caption 是31.3跟3.03
原本的程式
FS0都會是30

===================引 用 K1086 文 章===================
procedure TTwn_Anly_49_Fm1.HemisphereButton1Click(Sender: TObject);
var

FS0:STRING;
AS1:array[0..1] of string;
Begin
AS1[0]:=COPY((Lab_RS1.Caption),0,1);//抓差數第一位數
AS1[1]:=COPY((Lab_RS1.Caption),2,1);//抓差數第二位數
IF AS1[1]= '.' Then
as1[1]:='0';
FS0:= AS1[0] AS1[1]; //等差數相加去.豆點
===>假設AS1[0] 的值是 3 AS1[1] 的值是.
===>經字串轉換FS0:= 30
===>然而 30 並非所要正確值 實際需要的值是 3 而已 所以不知要如何解決 .豆點的問題
===>請教各位 Delphi 高手 謝謝!


------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
編輯記錄
eaglewolf 重新編輯於 2007-05-12 17:16:12, 註解 無‧
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-14 14:34:22 IP:61.64.xxx.xxx 訂閱
如 123.4000

dotPos := ANSIPOS(Str,'.');

Num := Copy(Str,dotPos 1,Length(Str));

Num 會等於 4000

方法如上,細節請自行處理,如該如何宣告,宣告的型態,你應該有辦法解決


如果 Str 是 123.4000 這種型態,才必需加入去尾 0 的方法

方法也很直覺

i := Length(Num) - 1;

while (Num[i] = '0') and (i > 0) do i := i - 1;

NewNum:= Copy(Num, 1, i 1);

此時 NewNum 會等於 4

就是解



K1086
初階會員


發表:63
回覆:148
積分:42
註冊:2007-04-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-05-15 10:14:59 IP:220.131.xxx.xxx 訂閱
謝謝各位的指點, 已經解決問題了,尤其是 (syntax 資深會員 )所提供的 方式 很正確 非常感激.小弟對 delphi 越來越有興趣了。^_^ 謝謝大家....
系統時間:2024-05-19 8:44:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!