将十进制变量拆分为积分和分数部分

inv*_*ass 20 c# decimal integral fractions

我试图从十进制值中提取积分和小数部分(两个部分应该是整数):

decimal decimalValue = 12.34m;
int integral = (int) decimal.Truncate(decimalValue);
int fraction = (int) ((decimalValue - decimal.Truncate(decimalValue)) * 100);
Run Code Online (Sandbox Code Playgroud)

(为了我的目的,十进制变量最多包含2个小数位)

有没有更好的方法来实现这一目标?

Gir*_*are 18

       decimal fraction = (decimal)2.78;
        int iPart = (int)fraction;
        decimal dPart = fraction % 1.0m;
Run Code Online (Sandbox Code Playgroud)


Bar*_*aye 2

怎么样:

int fraction = (int) ((decimalValue - integral) * 100);
Run Code Online (Sandbox Code Playgroud)