我正在做一些简单的计算,在计算器中输入的值给我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
答案 0 :(得分:3)
您要划分两个int
值:1
和365
。在大多数编程语言中,此除法返回int
值,在您的特定情况下为0. (double)
强制转换仅在计算结果后执行。 (double)0
是0
。要获得小数结果,您可以在其中一个操作数上使用强制转换:(double)1/365
或1/(double)365
,或使用其他人建议的内容:1.0/365
或1/365.0
。< / p>
答案 1 :(得分:2)
1/365为0(它几乎为0,但随后变为0因为你处理的是整数输入,因此你只得到整数结果),然后转换为双精度,它仍然是0,任何^ 0 = 1
你可以试试1.0 / 365