作者loveme00835 (朴髮箍)
看板C_and_CPP
標題Re: [問題] timespec 相減
時間Thu May 5 03:43:15 2011
※ 引述《sonic010739 (sonic)》之銘言:
: timespec的資料結構如下
: struct timespec
: {
: time_t tv_sec; /* seconds *
: long tv_nsec; /* nanoseconds *
: }
: struct timespec a = {0, 800000000};
: struct timespec b = {1, 200000000};
: 兩個timespec運算 要考慮的部分太多
: 請問要如何以簡單的方法計算出 a - b = -0.4 而不是 -1.6
試著組合一下:
0 800000000 (兩個整數)
↘ ↙
0
.800000000 (一個浮點數)
同理從 b 也可以生出浮點數 1.2, 這一切都可以靠 sprintf/
sscanf 來達成:
char buffer[40];
sprintf( buffer, "%zu.%09ld %zu.%09ld", a.tv_sec, a.tv_nsec,
b.tv_sec, b.tv_nsec );
float value_of_a, value_of_b;
sscanf( buffer, "%f %f", &value_of_a, &value_of_b );
printf( "%.1f", value_of_a - value_of_b );
搞定. 非常無腦的方法, 應該夠簡單了吧? Orz
--
▂▅▂ ▁ ● ◣ 朴 ☆ 素 ★ 妍 ◢
◢ ◣ ◢▂▂◣ ◢▂※◣ ◢▄▂◣ T.T.L Listen 2
★ ★ ★ ★ ▉ ★ ★▏▉ ★ ★◣ http://ppt.cc/jIUk
◥ˇ◢ ▃◥ˇ◤▃ ◥ˇ◤ ◥ˇ◤◢ 說什麼結束
▃▃▇▃▃ ◢▇◣ ▋
▎ ▋¥▎ ◢ http://ppt.cc/zQtB
▼ ▼ ▼ ▼ ψ髮箍 ◤ ◣
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.197.115
推 HuangTzHuan:tv_sec + tv_nsec/1000000000.0 就好了吧?XD 05/05 08:40
我也是覺得樓上這樣做就好了...
※ 編輯: loveme00835 來自: 140.121.197.115 (05/05 10:40)
推 hpeter:上一篇提過了 轉long longXD (tv_sec*1000000000 + tv_nse) 05/05 19:23