面对一个简单的问题。double 类型中,点后的前两个字符需要剪掉。例如,有一个数字
price = 26.109000006
我应该得到 10。不是 26.10,只是 10。没有任何四舍五入。
如果您将此数字转换为字符串并剪掉点后的第一个数字,则可以这样完成。
string stringPrice = price.ToString();
stringPrice = stringPrice.Substring(stringPrice.IndexOf(',')+1);
出口处将有 10 个。但有一个警告。如果出现这样的数字
26.10000000然后该方法ToString()将返回我不是26.10000000但26.1就行了
stringPrice = stringPrice.Substring(stringPrice.IndexOf(',')+1);我已经发现了异常。按照思路,方法ToString()应该是这样转换的"26.10000000"。但是不,它会修剪零。
事实上,有人怀疑我走错了路。我的最终目标只是比较点后的前 2 个字符,看看它们是否等于0. 只是一个数字可以被抓住26.0000000005然后我不会检查一个整数
如何在不舍入和修剪零的情况下获得点后的前两个数字。谢谢
你有“非零”的事实可以这样检查:
(26.0000000005 - 26) >= 0.01- 错误的(26.109000006 - 26) >= 0.01- 真的好吧,或者更通用的版本:
(number - Math.Truncate(number)) >= 0.01