案例:
double x = Math.Pow(Convert.ToDouble(0.07003 + 1 ),(1/12));
Console.WriteLine(x);
输出:
1
以上输出不正确,因为x
的结果是1
而不是1.005657
如何转换1/12
格式,它提供小数值并被Math.Pow()
接受。
真正的问题是将1
划分为12
(1/12
),其值为0
(而不是0,083333...
)。
答案 0 :(得分:3)
试试这个:
double x = Math.Pow(Convert.ToDouble(0.07003 + 1 ),(1/12d));
这会使12
成为双倍,使1/12
的结果变为双倍。因此,不是从该分部获取0
,而是0.0833333333333333
。
答案 1 :(得分:1)
文字1
和12
都是整数,因此1/12
是整数除法,给出整数结果(0)。将至少一个文字更改为double
或decimal
以执行浮点除法。
要将数字作为double
,请添加小数位(例如1.0
)或'D'后缀(1D
)。要使其成为小数,请添加“M”后缀(1M
)。