[問題] 小數點問題

看板C_and_CPP作者 (睡覺)時間14年前 (2011/05/19 17:36), 編輯推噓5(5022)
留言27則, 9人參與, 最新討論串1/1
不好意思 想請教 一個問題 假如我有一個double數值 x=123.45678 我該如何讓x1= 123.456 後頭的78不要? 或是一個文字檔123.45678 我要如何只讀123.456? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.110.234

05/19 17:41, , 1F
如果存在記憶體是Double那應該直接減掉0.00078就可以了
05/19 17:41, 1F

05/19 17:41, , 2F
如果存的是文字,直接把7那一位改成\0
05/19 17:41, 2F

05/19 17:44, , 3F
(double)((int)(x * 1000) / 1000)
05/19 17:44, 3F

05/19 17:50, , 4F
%.3f....
05/19 17:50, 4F

05/19 18:08, , 5F
x=floor(x*1000)/1000;
05/19 18:08, 5F

05/19 18:28, , 6F
scanf("%.3lf",&x); //l != 1...
05/19 18:28, 6F

05/19 22:32, , 7F
fscanf(檔案指標,"%lf",&x); x=floor(x*1000)/1000;
05/19 22:32, 7F

05/20 00:10, , 8F
<math.h> RoundTo()
05/20 00:10, 8F

05/20 00:47, , 9F
%.3f不是比較方便嗎..??
05/20 00:47, 9F

05/20 07:47, , 10F
double要用lf吧? scanf()的時後
05/20 07:47, 10F

05/20 08:28, , 11F
C99 規定 小寫l 加在 f 時,沒有效果,等同於 %f
05/20 08:28, 11F

05/20 08:28, , 12F
不遵從 C99,有可能是在指定 long double。%Lf 保證 long
05/20 08:28, 12F

05/20 08:29, , 13F
double。VC的long double等於double,但gcc的則是12 Bytes
05/20 08:29, 13F
感謝以上大大回答 (double)((int)(x * 1000) / 1000) 我也有使用,只是讀取數值過大,int會溢位 EX: 1234567.12345 <===這種就溢位了 另外感謝 sand大 floor 第一次聽過,也很好用!!! ※ 編輯: lovecomic 來自: 140.115.110.234 (05/20 09:22)

05/20 09:40, , 14F
~"~沒考慮,double dInt;modf(x*1000,&dInt);
05/20 09:40, 14F

05/20 09:41, , 15F
x = dInt / 1000;這樣也可以,只是比較慢
05/20 09:41, 15F

05/20 11:24, , 16F
05/20 11:24, 16F

05/20 11:25, , 17F
scanf, on the other hand, accepts pointers, and no such
05/20 11:25, 17F

05/20 11:25, , 18F
promotions apply. Storing into a float (via a pointer)
05/20 11:25, 18F

05/20 11:25, , 19F
is very different from storing into a double, so scanf
05/20 11:25, 19F

05/20 11:26, , 20F
distinguishes between %f and %lf. C FAQ 說要分耶 <囧>
05/20 11:26, 20F

05/20 11:39, , 21F
原來如此,x大是對的。我一開始只看了 printf 的說明寫
05/20 11:39, 21F

05/20 11:40, , 22F
沒有效果。但是 scanf 的說明沒看,上面則是寫有區別沒錯
05/20 11:40, 22F

05/20 11:40, , 23F
一直以為兩邊通用,長見識了,感謝
05/20 11:40, 23F

05/20 11:58, , 24F
-)
05/20 11:58, 24F

05/20 11:59, , 25F
我也以為printf跟scanf是通用的...XD
05/20 11:59, 25F

05/20 12:09, , 26F
http://nopaste.csie.org/9bc74 GCC會很nice 的給你警告XD
05/20 12:09, 26F

05/20 13:55, , 27F
以前都沒注意到呢,太粗心了
05/20 13:55, 27F
文章代碼(AID): #1DrEICVO (C_and_CPP)