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

时间:2015-12-09 14:31:40

标签: c#

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

int BeforeDecimal = 50000;
int AfterDecimal = 25;

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

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

5 个答案:

答案 0 :(得分:5)

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

如果不能,请使用

return (decimal)BeforeDecimal + ((decimal)AfterDecimal / (decimal)Math.Pow(10, Math.Ceiling(Math.Log10(AfterDecimal))));

答案 1 :(得分:4)

将AfterDecimal除以100并求和BeforeDecimal。唯一需要注意的是后缀m(对于十进制),让语言知道你想要一个浮点除法,而不是一个整数除法。

decimal result = BeforeDecimal + (AfterDecimal / 100m);

答案 2 :(得分:3)

s[pivotpoint]

答案 3 :(得分:1)

peewee.OperationalError: near "WITH": syntax error

答案 4 :(得分:1)

不是最快的解决方案,但如何:

decimal result = Decimal.Parse(String.Format("{0}.{1}", 
                 BeforeDecimal, AfterDecimal), CultureInfo.InvariantCulture);

您将避免可能会失去PowCeil和分区的精确度。此外,它并不关心 dot 之后你有多少位数。