請問一個運算的問題! |
尚未結案
|
小禹
一般會員 發表:8 回覆:10 積分:3 註冊:2002-12-25 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
Royce520
高階會員 發表:18 回覆:157 積分:100 註冊:2002-09-13 發送簡訊給我 |
小禹 你好,
如果你需要 直接轉成數值(不是字串)
我也提供一個方法, :p #include 〈math.h〉
...
double a = 3.666666666;
double trunc = 0.001; // 或 0.0001 double result = a - fmod(a, trunc); 值就是 3.666
------
不要忘記呼吸,不要忘記編程! ∩__∩ |
小禹
一般會員 發表:8 回覆:10 積分:3 註冊:2002-12-25 發送簡訊給我 |
|
小禹
一般會員 發表:8 回覆:10 積分:3 註冊:2002-12-25 發送簡訊給我 |
|
Royce520
高階會員 發表:18 回覆:157 積分:100 註冊:2002-09-13 發送簡訊給我 |
小禹 你好,
你這樣寫當然可以啊
String s = FormatFloat("0.000",c);
c = StrToFloat(s); 不過如果 只是數值, 所以可以這樣
float a = 3.666666666;
float trunc = 0.001; // 或 0.0001 float result = a - fmod(a, trunc); 至於如果出現了些許小誤差... 原因是bcb
內部處理數值的小問題, 所以我建議你用
double 處理, 比較好 *真實的事物最美, 簡單的道理最好, 我能體會的 太少* 發表人 - royce520 於 2003/06/11 02:15:03
------
不要忘記呼吸,不要忘記編程! ∩__∩ |
deal
一般會員 發表:6 回覆:33 積分:22 註冊:2003-04-07 發送簡訊給我 |
|
lo
初階會員 發表:8 回覆:69 積分:25 註冊:2003-01-12 發送簡訊給我 |
|
小禹
一般會員 發表:8 回覆:10 積分:3 註冊:2002-12-25 發送簡訊給我 |
|
deal
一般會員 發表:6 回覆:33 積分:22 註冊:2003-04-07 發送簡訊給我 |
|
小禹
一般會員 發表:8 回覆:10 積分:3 註冊:2002-12-25 發送簡訊給我 |
|
deal
一般會員 發表:6 回覆:33 積分:22 註冊:2003-04-07 發送簡訊給我 |
|
小禹
一般會員 發表:8 回覆:10 積分:3 註冊:2002-12-25 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言: float c = 3.66666666; c = RoundTo(c,-4); Label1->Caption = c; // c = 3.66669988632202 若改成 double c = 3.66666666; c = RoundTo(c,-4); Label1->Caption = c; // c = 3.6667 我想我是試出來了 但是就是不知道為什麼??????因為 double 是用 8 bytes 來存資料而 float 只用 4 bytes 來存資料,當然精確度是以 double 較高, float 只能用來「粗算」、要求運算速度快又不需要太準時使用,如果要「精算」要求較高的精確度,要使用 double ,如果覺得 double 還不夠,可以用 long double ,long double 是用 10 bytes 來存資料的, long double 在 Delphi 中是 Extended ,您可以看到許多內建(來自 Delphi) 的函式都是用 Extended 而不是 double 或 float,就是因為怕損失精確度。 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |