相关疑难解决方法(0)

查找十进制值的小数位数,无论文化如何

我想知道是否有一种简洁而准确的方法来提取十进制值中的小数位数(作为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)

但我发现这只适用于使用'.'的地区.作为小数分隔符,因此在不同系统中非常脆弱.

c# cultureinfo decimal

72
推荐指数
9
解决办法
8万
查看次数

向上或向下绕红宝石漂浮到最接近的0.05

我得到的数字就像

2.36363636363636
4.567563
1.234566465448465
10.5857447736
Run Code Online (Sandbox Code Playgroud)

我如何让Ruby将这些数字向上(或向下)舍入到最接近的0.05?

ruby floating-point rounding

25
推荐指数
6
解决办法
3万
查看次数

舍入浮动到最近的因子?

我想解决一个小数学问题

给定数字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中这样做?

python algorithm math

6
推荐指数
1
解决办法
1903
查看次数

圆十进制值最接近0.01?

可能重复:
c# - 如何将十进制值舍入到2个小数位(用于页面上的输出)

如何将十进制值舍入到最接近的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# numbers rounding

5
推荐指数
1
解决办法
1万
查看次数

舍入小数到最接近的0.05?

嘿伙计们,我如何在c#中将小数点数舍入到最接近的0.05美分?

例如3.44美元四舍五入至3.45美元或3.48美元至3.50美元

我玩math.round()虽然没有想到这一点.

c#

5
推荐指数
2
解决办法
1万
查看次数

将十进制值舍入到最接近的0.05值?

我正在阅读如何将十进制值舍入到最接近的0.05值?.

它提到了以下内容.

   Math.ceiling(myValue * 20) / 20
Run Code Online (Sandbox Code Playgroud)

这个黑客如何运作?我是说我们是如何得出这个解决方案的?

java decimal

2
推荐指数
1
解决办法
4044
查看次数

从小数中获取最后一位数字

我有个问题.在我的情况下,我想检索十进制值的最后一位数,以进行舍入调整.以下是我的代码:

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)

c# pocketpc visual-studio-2005

-1
推荐指数
1
解决办法
1163
查看次数