将十进制变量拆分为整数部分和分数部分
本文关键字:数部 整数部 十进制 变量 拆分 | 更新日期: 2023-09-27 18:35:02
我正在尝试从十进制值中提取整数和小数部分(两个部分都应该是整数(:
decimal decimalValue = 12.34m;
int integral = (int) decimal.Truncate(decimalValue);
int fraction = (int) ((decimalValue - decimal.Truncate(decimalValue)) * 100);
(就我而言,十进制变量最多包含 2 位小数(
有没有更好的方法来实现这一目标?
decimal fraction = (decimal)2.78;
int iPart = (int)fraction;
decimal dPart = fraction % 1.0m;
尝试数学定义:
var fraction = (int)(100.0m * (decimalValue - Math.Floor(decimalValue)));
虽然,它在性能方面不是更好,但至少它适用于负数。
decimal fraction = doubleNumber - Math.Floor(doubleNumber)
或类似的东西。
怎么样:
int fraction = (int) ((decimalValue - integral) * 100);
要取出分数,您可以使用以下解决方案:
Math.ceil(((f < 1.0) ? f : (f % Math.floor(f))) * 10000)