楼主的题目要求表达式数值的精度在小数点前第二位。因此需要用到舍入函数,也就是通常意义上的四舍五入。round就是这样的函数。例如:ruond(3.4)=3,round(3.8)=4。但是这个函数仅仅对第一位小数进行取舍。 如果要求保留小数点后第二位如何处理,请看下面的例子:
3.746~=3.75
[round(3.746*100)]/100=[round( 374.6)]/100=[375]/100=3.75 其他依此类推。
如果取小数点前第二位,要将乘除号颠倒一下,例如:
3746~=3750
[round( 3746/10)]*10=[round(374.6)]*10=[375]*10=3750
这是编程时常用的一种数值取舍方法。任何一本算法语言的书中都有介绍。找本basic语言的通俗读物,所有的函数及其用法都有。AIP所采用的算法语言函数类型可在“帮助”中找到。
但是在AIP中,涉及到单位问题。它还有个特殊的要求,round函数内的表达式应是无参量,因此首先要消除其他变量带进来的单位。楼主题目中d0单位为mm,因此首先要消除单位:d0/1mm。但是为了使最后的计算结果与前面单位中规定的mm相符,因此round计算完成后,再乘1mm,将数值赋予单位。
严格说来AIP中对单位运算的处理能力不够理想。个人感觉单位运算能力较好的应算mathcad .
|