→ onezillion: int只取整數部分,無視小數點進位? 09/14 09:56
→ kerwinhui: 如果要四捨五入請先加 sgn*0.5D0 09/14 10:58
→ kerwinhui: 如果你是用gfortran可以用nint,ifort的話不建議使用 09/14 11:02
→ rex0707: INT 是無條件捨去 09/14 13:22
→ blc: 就 -119.00 其實是 -118.9999999~ 我猜x,y值都滿大的, 09/14 13:42
→ blc: 相減之後的差值有碰到有效位數的問題。 09/14 13:42
→ ttjhninn: 可是print出來的數不會就是他算出來的數字嗎? 09/14 13:44
→ ttjhninn: 他print出來的數字的確是-119.0000000....啊 09/14 13:46
→ blc: print出來的是會四捨五入的(印象中) 09/14 13:56
→ ttjhninn: 那有辦法可以看到實際計算出來的直嗎? 09/14 14:02
→ rex0707: 格式化輸出吧 09/14 14:04
→ ttjhninn: 以多加write(17,*)(x-y)*10.0d+00,int((x-y)*10.0d+00) 09/14 14:13
→ ttjhninn: 得到的數字仍然是-119.000000000000 -118 09/14 14:13
→ blc: 用unformatted寫到檔案裡,然後用hexdump看。 09/14 14:15
→ blc: 問一下,你是用ifort嗎? 09/14 14:15
→ blc: 然後xy各是多少? 09/14 14:16
→ ttjhninn: 應該是ifor沒錯 09/14 14:18
→ blc: 比較一下unformatted的(x-y)跟119.有沒有不一樣。 09/14 14:26
→ blc: 或是換gfortran試試會不會有問題。 09/14 14:27
→ ttjhninn: 改成int(x*10.0d+00-y*10.0d+00)數字就變-119了,why!? 09/14 22:02