是否可以剪切小数,而不是将其舍入。像这样。
decimal number = 12.159m;
如何从number
而不是12.16轻松获得12.15?
是否有一种简单的方法或字符串操作是唯一的方法?
答案 0 :(得分:9)
你可以试试这个
decimal number = 12.159m;
number = Math.Truncate(number * 100m) / 100m;
答案 1 :(得分:4)
你可以做到
Math.Floor(number * 100) / 100
根据你想要处理的方式(如果你想处理)负数,你也可以使用Truncate而不是Floor。
答案 2 :(得分:-1)
或者另一种方法是使用正则表达式来捕获输入并将其转换回十进制,例如
Regex r = new Regex("(?<postNo>\d+)\.(?<preNo>\d{1,3})"); Decimal d= 12.159M; Match m = r.Match(d.ToString()); if (m.Success){ string s = string.Format("{0}.{1}", m.Groups["postNo"].Text, m.Groups["preNo"].Text); Decimal d = Decimal.Parse(s); }
在正则表达式的'preNo'标签中,将其从\ d {1,2}更改,例如,如果要在点之后仅保留两位数字。好吧,我知道人们会说,嘿,这个问题很缓慢而且还没有给出这个答案......这有助于表明有一些方法可以让猫皮肤出现!
希望这有帮助, 最好的祝福, 汤姆。
P.S:编辑了这个,因为我在向下看之后意识到编辑已经逃过了丢失的文字!