如何直接判斷Double進行小數運算時有無誤差?

题目来源及自己的思路

已知道大部分的小數無法用Double完整表示,在運算小數時會有誤。
請問有無方法快速判斷小數運算有無誤差,是否等於另一個小數?
如果無,需要手算,請問模擬電腦運算將數字轉為二進制取到53位時,要如何判斷是否需要進位?
搜尋到.Net似乎使用四捨六入五成雙,這個規則在二進制如何實現呢?

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

下面圖兩題答案分別為C、D
v2-c4f43ae4d680651f78488df070b09ae5_b.png

  1. 執行下列 Visual Basic 程式片段,輸出結果為何? (A) 1 (B) 0 (C) True (D) False

Console.WriteLine(1.1 + 1.2 = 2.3)

  1. 執行下列 Visual Basic 程式片段,輸出結果為何? (A) 1 (B) 0 (C) True (D) False

Console.WriteLine(0.3 - 0.2 = 0.1)

你期待的结果是什么?实际看到的错误信息又是什么?

因為是比賽,所以希望能有個能快速手算的方法!感謝!

阅读 1.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进