怎么这么简单的三行代码竟然也运算错了??关于四舍五入的
float round(float v , float n)
{
float temp;
temp = pow( 10 , n);
float f = (int)(v * temp + 0.5) / temp;//监视这个表达式没错
return f;//运行到这里f就变了。好像没有四舍五入的样子
}
这个函数的作用是把v的浮点数只保留n位小数的四舍五入算法。再watch里面运行到float f = (int)(v * temp + 0.5) / temp;的时候,我监视了(int)(v * temp + 0.5) / temp表达式的值,这时没有错,但是赋值到f后,再监视f的值就错了,好像没有四舍五入的样子
{
float temp;
temp = pow( 10 , n);
float f = (int)(v * temp + 0.5) / temp;//监视这个表达式没错
return f;//运行到这里f就变了。好像没有四舍五入的样子
}
这个函数的作用是把v的浮点数只保留n位小数的四舍五入算法。再watch里面运行到float f = (int)(v * temp + 0.5) / temp;的时候,我监视了(int)(v * temp + 0.5) / temp表达式的值,这时没有错,但是赋值到f后,再监视f的值就错了,好像没有四舍五入的样子
...全文
相关推荐
JS Math.floor与四舍五入区别[项目代码]
本文详细解析了JavaScript中Math.floor与四舍五入的根本区别。Math.floor的功能是向下取整,无条件舍去小数部分,而四舍五入则需要根据小数部分的值进行判断。要实现标准的四舍五入,应使用Math.round方法。文章还探讨了Math.floor的适用场景,如分页计算和商品折扣处理,并分析了开发者混淆这两个概念的常见原因,包括对函数名中文翻译的误解和粗略测试用例的误导。最后,作者鼓励读者分享实际项目中的误用经历,并强调了在财务或精度要求高的计算中正确使用这些方法的重要性。
C++四舍五入方法[源码]
本文介绍了在C++中实现四舍五入的几种常见方法。首先,可以使用C++11及更高版本中的round()函数,需包含头文件<cmath>或<bits/stdc++.h>。其次,手动实现四舍五入的方法包括:1. 加上0.5后使用floor()函数向下取整;2. 加上0.5后通过强制转换为整型int实现向下取整。这些方法适用于不同的场景,开发者可以根据需求选择合适的方式。
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
主要介绍了Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法,非常具有实用价值,需要的朋友可以参考下
Excel也会“作假”-真正实现四舍五入.pptx
Excel也会“作假”-真正实现四舍五入.pptx
小学数学二年级计算错误的归类、成因及对策的研究.doc
小学数学二年级计算错误的归类、成因及对策的研究.doc


