VB6自定义银行家舍入 用 Currecy 类型就很好,专门为金融设计的类型。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 厄……,我们的数据是需要保留4位小数,从第五位开始使用银行家舍入进行精确,但是Currency类型本身就只保留4位小数,也就是说没等我们舍入,他自己就已经帮我们进行取舍了,所以没法用。不过还是谢谢你,我也是试过之后才知道的。 是指“ (x+0.5)/1”吗?还是Round方法?(x+0.5)/1的话,因为四舍五入相对简单,只需要和5比较就好了,但是银行家舍入比较麻烦,需要跟4,5,6比较,如果是5的话,还得看5后面是否为0,要是为0还得看5前面是奇数还是偶数,需要比较的阈值比较多。 写了个C++版本,欢迎指正:double CUtilities::RoundOffBank(double& x,int32_t n){ n = n + 1; double temp = x * pow(10, n); int32_t iNum2 = floor(temp); int32_t iNum1 = iNum2 % 10 ; if (iNum1 < 5) { x = ((iNum2 - iNum1) * pow(10, -n)); } else if (iNum1 > 5) { x = ((iNum2 + 10 - iNum1) * pow(10, -n)); } else // iNum1 == 5 { double after5 = temp - iNum2; if (after5 > 0) { x = ((iNum2 + 10 - iNum1) * pow(10, -n)); } else //after5 == 0 { int32_t before5 = ( (iNum2 - iNum1) / 10 ) % 2; if(before5 == 1) x = ((iNum2 + 10 - iNum1) * pow(10, -n)); else x = ((iNum2 - iNum1) * pow(10, -n)); } } return x;} VB中怎么判断查询动作是否已经完成? 求水晶报表 8.5版本! 右键单击日期挑选器控件,选属性,出现的属性页窗体没有general选项卡。而且窗体特别大? treeview的问题,谢谢各位. recv接收中文出现乱码!?!?!? 急 请问有没有哪可以下到似于80分,或拖拉机之类的游戏源码 我在打包时,注册文件'C:\WINNT\System32\msado25.tlb'时出错,请指教 :)如何实现图象的“彩色”转换为“黑白” 请问高手们:用什么方法可以控制托盘中的图标隐藏或显示呢? 用vb和access做程序的问题,我才学VB问题太多 了解VB编写病毒的方法 求助,win7下设置颜色黑屏
不过还是谢谢你,我也是试过之后才知道的。
double CUtilities::RoundOffBank(double& x,int32_t n)
{
n = n + 1;
double temp = x * pow(10, n);
int32_t iNum2 = floor(temp);
int32_t iNum1 = iNum2 % 10 ;
if (iNum1 < 5)
{
x = ((iNum2 - iNum1) * pow(10, -n));
}
else if (iNum1 > 5)
{
x = ((iNum2 + 10 - iNum1) * pow(10, -n));
}
else // iNum1 == 5
{
double after5 = temp - iNum2;
if (after5 > 0)
{
x = ((iNum2 + 10 - iNum1) * pow(10, -n));
}
else //after5 == 0
{
int32_t before5 = ( (iNum2 - iNum1) / 10 ) % 2;
if(before5 == 1)
x = ((iNum2 + 10 - iNum1) * pow(10, -n));
else
x = ((iNum2 - iNum1) * pow(10, -n));
}
}
return x;
}