我正在做一些简单的计算,在计算器中输入的值给我1.000243872,但它给我1。我需要小数点。想知道舍入会有什么问题吗?
私人十进制APR = 4.5,私人十进制PF = 2,私人十进制CF =2
var value = (double) (1 + (double) APR/(double) PF); => 1.04550625
var value1 = (double)Math.Pow((double)value, (double) CF); => 1.093083319
var value2 = (double) Math.Pow((double) value1, (double)(1/365)); => 1发布于 2014-07-29 20:10:10
您正在除以两个int值:1和365。在大多数编程语言中,这种划分返回一个int值,在您的特殊情况下是0。只有在计算结果之后才执行(double)强制转换。(double)0是0。要获得不一致的结果,可以在操作数之一:(double)1/365或1/(double)365上使用强制转换,也可以使用其他人建议的方法:1.0/365或1/365.0。
发布于 2014-07-29 20:05:15
1/365为0(几乎为0,但随后变为0,因为您处理的是整数输入,因此只能得到整数的结果),然后转换为2,它仍然是0,任何^0 =1。
你可以试试1.0 / 365
https://stackoverflow.com/questions/25023967
复制相似问题