定义decimal类型的变量:
参考:http://msdn.microsoft.com/zh-cn/library/364x0z75%28v=vs.100%29.aspx
估计这个也帮不上你忙啊
@chenping2008: 楼主可以直接百度的,百度貌似有计算器的功能
decimal不行的,取值范围还不如double类型,当小数位数太多的时候更没法保存。
百度的计算器和这个问题关系不大吧,我要的是在Silverlight的项目中有一个变量去接收保存计算结果。
转换为整数来计就可以了.使用long应该够.
全部转换成整数后相乘的结果也很大,会long类型的范围
楼主,sqr(x1*x2*x3*……*xn,n)=sqr(x1,n)*sqr(x2,n)*……sqr(xn,n)是吧
标准差:http://baike.baidu.com/view/1024670.htm
算术平均值:http://baike.baidu.com/view/415917.htm
几何平均值:http://baike.baidu.com/view/306432.htm
算术标准差就是循环每一项分别减去算术平均值
几何标准差就是循环每一项分别减去几何平均值
我只能说的看你最后结果想要的精度了,两个带三位小数的数相乘,并不是每个都是你想要的。。
当达到某一标准时可以先记录,后面再做处理
当符合你的要求时,也没必要把小数位全留着
这是我的思路了。。
object
这个问题,需要从算法上考虑
你说的问题类似“大数相加”这一类的问题,其实解决之就是自己写个对应的处理算法。算法的思想就是把要操作的数当成字符串处理,按对应的数学规则逐位操作,最后结果也用字符串保存,这样就可以解决!
用string类型,写一个BigNumber类去保存计算结果。其中要简化几何平均值和几何标准差的算法。
把小数位变成整数位:即如何有个数是3.1415987674895749579580574094............
你可以先乘以一个10000000000000000000000000000000000000000000的数,计算完后将每位数以单个数输出
比如:
10^6 10^5 10^4 10^3 10^2 10^1 10^0 10^-1 10^-2 ......
1 4 6 4 4 6 3 5 3 .....
这样,即是有1000多位应该也是可以解决的。