在c#中以小数点开头停止的十进制值

时间:2014-05-02 02:06:14

标签: c# math double decimal

我试图弄清楚为什么我的十进制值没有正确存储。这是一个示例等式:

//Comes up as 0.0
double foo = 120 / 175;
// Want to convert to look like a percent but comes up as 0.0 also
double bar = foo * 100;

我知道120/175是0.6857 ....任何想法?

1 个答案:

答案 0 :(得分:4)

您正在对两个整数执行算术运算,因此结果为整数。在将结果存储在foo之前,您将丢失结果的小数部分。

您应首先将其中一个值转换为double

double foo = 120d / 175;

您也可以使用decimal执行此操作,如果这是您实际尝试使用的内容:

decimal foo = 120m / 175;

一旦你从第一个等式中正确地捕获了十进制值,这部分应该可以正常工作:

decimal bar = foo * 100;