我想知道是否有一种简洁而准确的方法来提取十进制值中的小数位数(作为int),可以安全地在不同的文化信息中使用?
例如:
19.0应该返回
1,27.5999应该返回4,19.12
应该返回2,
等等.
我写了一个查询,在一个句点上执行字符串拆分以查找小数位:
int priceDecimalPlaces = price.ToString().Split('.').Count() > 1
? price.ToString().Split('.').ToList().ElementAt(1).Length
: 0;
Run Code Online (Sandbox Code Playgroud)
但我发现这只适用于使用'.'的地区.作为小数分隔符,因此在不同系统中非常脆弱.
我得到的数字就像
2.36363636363636
4.567563
1.234566465448465
10.5857447736
Run Code Online (Sandbox Code Playgroud)
我如何让Ruby将这些数字向上(或向下)舍入到最接近的0.05?
我想解决一个小数学问题
给定数字x和分辨率y,我需要找到具有所需分辨率的下一个x'.
例如
x = 1.002 y = 0.1 x'= 1.1
x = 0.348 y = 0.1 x'= 0.4
x = 0.50 y = 1 x'= 1
x = 0.32 y = 0.05 x'= 0.35
Run Code Online (Sandbox Code Playgroud)
有没有聪明的方法在Python中这样做?
如何将十进制值舍入到最接近的0.05值?,链接的SO帖子也讨论了类似的主题,但它不是我预期的输出.
我需要像这样转换小数值
16.489-->16.49
16.482-->16.48
16.425-->16.43
7.67 --> 7.67 (no conversion)
Run Code Online (Sandbox Code Playgroud)
我可以使用下面的C#方法来转换值
Math.Round(16.482*20)/20;
Run Code Online (Sandbox Code Playgroud)
但这种方法对我不起作用,它给出了以下结果
16.489-->16.5
16.482-->16.5
7.67 --> 7.7
16.425-->16.45
Run Code Online (Sandbox Code Playgroud)
在c#中用优雅的方式来做到这一点.
嘿伙计们,我如何在c#中将小数点数舍入到最接近的0.05美分?
例如3.44美元四舍五入至3.45美元或3.48美元至3.50美元
我玩math.round()虽然没有想到这一点.
我正在阅读如何将十进制值舍入到最接近的0.05值?.
它提到了以下内容.
Math.ceiling(myValue * 20) / 20
Run Code Online (Sandbox Code Playgroud)
这个黑客如何运作?我是说我们是如何得出这个解决方案的?
我有个问题.在我的情况下,我想检索十进制值的最后一位数,以进行舍入调整.以下是我的代码:
private void calculateADJ()
{
string result = Strings.Right(txtGTotal.Text, 1);
if (result == "1" || result == "6")
{
txtStoreRA.Text = "-0.01";
txtOutstanding.Text = (Convert.ToDouble(txtGTotal.Text) - 0.01).ToString("0.00");
}
if (result == "2" || result == "7")
{
txtStoreRA.Text = "-0.02";
txtOutstanding.Text = (Convert.ToDouble(txtGTotal.Text) - 0.02).ToString("0.00");
}
if (result == "3" || result == "8")
{
txtStoreRA.Text = "0.01";
txtOutstanding.Text = (Convert.ToDouble(txtGTotal.Text) + 0.01).ToString("0.00");
}
if (result == "4" || result == "9")
{
txtStoreRA.Text = "0.02";
txtOutstanding.Text = (Convert.ToDouble(txtGTotal.Text) + …Run Code Online (Sandbox Code Playgroud)