【問題】請問一個AnsiString.ToDouble()的 Bug |
尚未結案
|
fony_dai
一般會員 發表:1 回覆:3 積分:0 註冊:2005-06-13 發送簡訊給我 |
小弟有一段程式碼需要在西班牙語系的OS上跑
可是卻會發生很奇怪的Bug在ToDouble()這個function上
這是一個用來轉換經緯度字串的function
輸入為Data = "W43.460239"
在中文和英文OS上輸出為-43.460239
可是在西班牙語系上卻會有[raised exception class EConvertError with message "43.460239" is not a valid floating point value]的錯誤訊息
小弟我BCB實在太弱了 一直想不通為何發生此事
懇請求教 感激不盡 double __fastcall TAvsLonLatUnit::ToDouble(AnsiString Data) {
if(Data.Length() == 0)
return 0.0;
double ret = 0.0;
AnsiString data = Data;
int abs = 1;
if ((Data[1] == 'S') || (Data[1] == 'W')) {
abs = -1;
}
data.Delete(1, 1);
try {
ret = abs * data.ToDouble();
} catch(...) {
}
return ret;
}
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
fony_dai
一般會員 發表:1 回覆:3 積分:0 註冊:2005-06-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |