如何将分数转换为double或decimal?

时间:2015-11-21 15:54:17

标签: c#

案例:

double x = Math.Pow(Convert.ToDouble(0.07003 + 1 ),(1/12));
Console.WriteLine(x);

输出:

1

以上输出不正确,因为x的结果是1而不是1.005657

如何转换1/12格式,它提供小数值并被Math.Pow()接受。

真正的问题是将1划分为121/12),其值为0(而不是0,083333...)。

2 个答案:

答案 0 :(得分:3)

试试这个:

double x = Math.Pow(Convert.ToDouble(0.07003 + 1 ),(1/12d));

这会使12成为双倍,使1/12的结果变为双倍。因此,不是从该分部获取0,而是0.0833333333333333

答案 1 :(得分:1)

文字112都是整数,因此1/12是整数除法,给出整数结果(0)。将至少一个文字更改为doubledecimal以执行浮点除法。

要将数字作为double,请添加小数位(例如1.0)或'D'后缀(1D)。要使其成为小数,请添加“M”后缀(1M)。