我想弄清楚为什么我的十进制值没有被正确存储。这是一个示例等式:
//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...知道吗?
最佳答案
您正在对两个整数执行算术运算,因此结果是一个整数。在将结果存储到 foo
之前,您会丢失结果的小数部分。
您应该先将其中一个值转换为 double
:
double foo = 120d / 175;
你也可以用 decimal
来做到这一点,如果那是你实际尝试使用的:
decimal foo = 120m / 175;
一旦您从第一个等式中正确获取了小数值,这部分应该可以正常工作:
decimal bar = foo * 100;
关于c# - 在 C# 中,十进制值在第一个小数点处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23419676/