十进制值在c#中的第一个小数处停止
本文关键字:小数 第一个 十进制 | 更新日期: 2023-09-27 18:01:08
我正在试图弄清楚为什么我的十进制值没有正确存储。这是一个示例方程:
//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;