我如何将此int转换为十进制格式

Chr*_*kes 0 c#

很抱歉,如果这是一个noob问题,但我记不起以前必须这样做,解决方案在C#中逃脱了我.说我有两个价值观;

int BeforeDecimal = 50000;
int AfterDecimal = 25;
Run Code Online (Sandbox Code Playgroud)

我如何将这两个int添加到50000.25m?

添加int是行不通的,我需要能够在将它添加到BeforeDecimal时将int转换为小数位.此外,我无法转换为字符串,因为我需要这是一个小数.我想我可以将其破解为字符串然后转换为小数,但这只是错误的.

Ste*_*eve 5

只需将 AfterDecimal 除以 100 并与 BeforeDecimal 相加即可。唯一需要注意的是后缀m(十进制)让语言知道您想要浮点除法而不是整数除法。

decimal result = BeforeDecimal + (AfterDecimal / 100m);
Run Code Online (Sandbox Code Playgroud)


eft*_*trm 5

如果AfterDecimal总是2个位置,则可以除以100并将它们加在一起.

如果不这样做,请使用

return (decimal)BeforeDecimal + ((decimal)AfterDecimal / (decimal)Math.Pow(10, Math.Ceiling(Math.Log10(AfterDecimal))));
Run Code Online (Sandbox Code Playgroud)