我试图弄清楚为什么我的十进制值没有正确存储。这是一个示例等式:
//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 ....任何想法?
答案 0 :(得分:4)
您正在对两个整数执行算术运算,因此结果为整数。在将结果存储在foo
之前,您将丢失结果的小数部分。
您应首先将其中一个值转换为double
:
double foo = 120d / 175;
您也可以使用decimal
执行此操作,如果这是您实际尝试使用的内容:
decimal foo = 120m / 175;
一旦你从第一个等式中正确地捕获了十进制值,这部分应该可以正常工作:
decimal bar = foo * 100;