推 J002: 不考慮用decimal? 07/29 01:54
→ ecniv: 浮點數運算產生的問題,1是像1F講的換數值類型, 07/29 10:54
→ ecniv: 2是輸出時指定數值格式。另外你的程式看不出有 07/29 10:54
→ ecniv: 轉換int的步驟,標題、內文、程式對不上... 07/29 10:54
→ christin023: 謝謝一樓和二樓前輩指點,您的意思是因為資料型態轉 07/29 11:54
→ christin023: 換出現精度不一的情況嗎?另外我文中指的轉換,是在 07/29 11:54
→ christin023: 練習過程中,看到書中寫c#運算資料中若有不同型別的 07/29 11:54
→ christin023: 資料,會做資料型別的轉換,還是我對這部分有理解錯 07/29 11:54
→ christin023: 誤呢? 07/29 11:54
→ ssccg: 你文中只有int轉double(weight * pd時weight自動轉double) 07/29 12:05
→ ssccg: 沒有double轉int啊 07/29 12:05
→ ssccg: 然後問題跟轉換沒有關係,你用52.0d * pd也會是一樣結果 07/29 12:20
→ ssccg: 單純是浮點數的小數部分本來就不是精確數值,你可以想成原 07/29 12:22
→ ssccg: 本2.20462d就不是2.20462,是2 + 一個很接近0.20462的小數 07/29 12:23
→ ssccg: 所以最後結果不是114.64024也是很正常的,而且精度非固定會 07/29 12:29
→ ssccg: 受有幾個數字位數影響 07/29 12:29
→ ssccg: 如果需要在十進位上精確,用decimal,不需要但是不想沒事冒 07/29 12:32
→ ssccg: 出一堆9就用Math.Round 07/29 12:34
→ christin023: 有理解了,非常感謝 07/29 14:05
推 Sisyphus: 我有遇過一些bug是使用prase decimal需要加上NumberStyl 07/31 04:59
→ christin023: 我這邊有試過decimal,輸出結果確實是我想要的~ 08/01 22:45