早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C#中双精度数10.00-9.90=0.09999999999999996?doublex=10.00,y=9.90;doublez=x-y;如上,我知道这是由于精度位数产生的误差但还是不太了解产生的过程,有什么方法可以避免出现这种情况?(不只针对这个例

题目详情
C#中双精度数10.00-9.90=0.09999999999999996?
double x=10.00,y=9.90;
double z = x - y;
如上,我知道这是由于精度位数产生的误差但还是不太了解产生的过程,有什么方法可以避免出现这种情况?(不只针对这个例子,一般情况下该如何避免)
▼优质解答
答案和解析
你可以使用decimal试一下 10.00-9.90=0.10 或者看你需要小数点后面几位 则取几位.string strZ=z.ToString("0.0000"); //这样是取小数点后四位 第五位是以四舍五入