很抱歉,如果这是一个noob问题,但我记不起以前必须这样做,解决方案在C#中逃脱了我。说我有两个值;
int BeforeDecimal = 50000;
int AfterDecimal = 25;
我如何将这两个int添加到50000.25m?
添加int不起作用,我需要能够在将它添加到BeforeDecimal时将int转换为小数位。此外,我无法转换为字符串,因为我需要这是一个小数。我想我可以将其破解为字符串然后转换为小数,但这只是错误的。
答案 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);
您将避免可能会失去Pow
,Ceil
和分区的精确度。此外,它并不关心 dot 之后你有多少位数。