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

关于保留一位小数并四舍五入第二位小数的doublex=123.456;s=(int)(x*10+0.5)/10;//为什么输出结果是10.000000s=(int)(x*10+0.5)/(double)10;//为什么输出结果是10.100000打错了,第二行的结果是123.000,第三行的结

题目详情
关于保留一位小数并四舍五入第二位小数的
double x=123.456;
s=(int)(x*10+0.5)/10; //为什么输出结果是10.000000
s=(int)(x*10+0.5)/(double)10; //为什么输出结果是10.100000
打错了,第二行的结果是123.000,第三行的结果是123.500,为什么答案不同
▼优质解答
答案和解析
你告诉我 s的类型是什么
这是因为 第一个算式中 两个都是整型 所以没有小数
第二个中 因为有一个是整型 一个是双精度型就是double型因为double型的精度比整型高所以 整型要变为double型 这样精度就不会有损失 这是系统自动转的 是属于隐藏类型转换