标签: number-formatting

Java: double: how to ALWAYS show two decimal digits

I use double values in my project and i would like to always show the first two decimal digits, even if them are zeros. I use this function for rounding and if the value I print is 3.47233322 it (correctly) prints 3.47. But when i print, for example, the value 2 it prints 2.0 .

public static double round(double d) {
    BigDecimal bd = new BigDecimal(d);
    bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
    return bd.doubleValue();
}
Run Code Online (Sandbox Code Playgroud)

I want to print 2.00!

Is there …

java double number-formatting

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

Chart.js数字格式

查看Chart.js文档并且没有找到关于数字格式的任何内容,即数字格式为"#,###.00"的1,000.02

我也做了一些基本测试,似乎图表不接受非数字文本的值

有没有人找到一种方法来获取格式化为千位分隔符和固定小数位数的值?我想将图表中的轴值和值格式化.

javascript formatting charts number-formatting chart.js

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

是否可以为.NET应用程序或仅为线程设置CultureInfo?

我有一个用C#编写的应用程序,它没有GUI或UI,而是编写由另一个应用程序解析的文件(在XML和其他应用程序中).

我有一个客户,其CultureInfo将NumberDecimalSeparator设置为逗号,导致浮点数解析错误(PI最终为3,1415).

我想要一种在应用程序中为所有线程全局设置CultureInfo的方法.我试过了:

  1. (显然)习惯性的方法是将CurrentThread.CurrentCulture设置为Main()中的第一行,但它似乎被重置.
  2. http://www.codeproject.com/KB/cs/Change_App_Culture.aspx上的变体/扩展
  3. 对应用程序中显式创建的线程执行相同的操作(#1).

更改为使用显式格式不是一种选择(150K +行,大多数由前雇员编写).

[编辑] 应用程序绑定到套接字并处理来自专用客户端的请求.根据请求类型,它会生成不同的处理程序类.

对不起,当我第一次发布时,我应该在#1中澄清(我虽然)我已经在所有明确生成的处理程序中完成了这一点.

事实证明我错过了导致问题的线程/处理程序. 所以应用程序现在正常工作,但问题仍然是关于是否可以在所有线程上设置文化.

如果它可以迭代所有线程,它也会解决问题.所以:

如何在当前进程中获取所有Thread对象(而不是ProcessThread)?

c# culture cultureinfo number-formatting

24
推荐指数
3
解决办法
2万
查看次数

Java7 Double.toString()返回0.005/java6,它是0.0050

我正在从JDK6升级到JDK7.以下代码演示了一个微小的变化Double.toString()

public class StringDemo
{

    public static void main(String[] args)
    {
        System.out.println(Double.toString(.0005));
        System.out.println(Double.toString(.005)); //different string
        System.out.println(Double.toString(.05));
        System.out.println(Double.toString(.5));
    }
}
Run Code Online (Sandbox Code Playgroud)

JRE6

5.0E-4
0.0050
0.05
0.5
Run Code Online (Sandbox Code Playgroud)

JRE7

我正在寻找与上述变化相关的任何文档.兼容性页面不包含它.

5.0E-4
0.005   //changed.
0.05
0.5
Run Code Online (Sandbox Code Playgroud)

输出保存在许多参考文件中,并通过字符串比较进行比较 - 我需要修复比较,但很想知道有关此更改的更多详细信息.关于为什么这种改变会获得赏金的权威答案.

java number-formatting

23
推荐指数
1
解决办法
1385
查看次数

这是根据规范的Java双解析行为吗?

java.lang.Double.parseValue方法以不一致的方式处理奇怪的双打表示.

如果你写了一个非常大的数字,那么它超出了double范围,但是然后附加一个大的负指数使它回到范围内,你最终在范围内(这里用Scala的REPL说明):

scala>
java.lang.Double.parseDouble("10000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000001e-400")
res25: Double = 1.0E-21
Run Code Online (Sandbox Code Playgroud)

另一方面,如果你写一个非常小的数字,这么小,它超出了double范围,但是然后使用一个大的正指数将它带回范围内,它只有在指数本身不是太大时才有效:

scala> 
java.lang.Double.parseDouble("0.000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000001e400")
res26: Double = Infinity

scala>
java.lang.Double.parseDouble("0.000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000001e200")
res27: Double = 1.0E-179
Run Code Online (Sandbox Code Playgroud)

这只是一个错误,或者某个地方是否存在允许这种行为的规范,或者规范允许所有这些都失败了,当得到正确的结果时,应该感谢一个人的祝福?(如果它是一个错误,它已被修复?)

(旁白:我正在编写自定义的字符串到双重代码,并且会针对棘手案例推迟Java默认实现,但此测试用例失败.)

java double parsing number-formatting

23
推荐指数
3
解决办法
882
查看次数

如何在PHP中使用加号为正数加前缀

我需要设计一个函数来返回负数,但+如果数字已经没有,应该在数字的开头添加一个符号.

例:

Input     Output
----------------
+1         +1
1          +1
-1         -1
Run Code Online (Sandbox Code Playgroud)

它只会获得数字输入.

function formatNum($num)
{
# something here..perhaps a regex?
}
Run Code Online (Sandbox Code Playgroud)

这个函数将被调用几次,echo/print因此越快越好.

更新:

谢谢大家的答案.我必须告诉sprintf基础解决方案真的很快.

php regex string number-formatting

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

如何在JSON的stringify中减少数字的重要性

我有一个数字(坐标)数组,我想显示那些使用JSON的数组

 JSON.stringify(array);
Run Code Online (Sandbox Code Playgroud)

我的数组看起来像:

[{"x":-0.825,"y":0},
 {"x":-1.5812500000000003,"y":-0.5625},
 {"x":-2.2515625000000004,"y":-1.546875}]
Run Code Online (Sandbox Code Playgroud)

但我只对第一个(比如说)4个有效数字感兴趣,即

[{"x":-0.825,"y":0},
 {"x":-1.5813,"y":-0.5625},
 {"x":-2.2516,"y":-1.5469}]
Run Code Online (Sandbox Code Playgroud)

有没有办法轻易抛弃剩下的微不足道的数字?

javascript json number-formatting

22
推荐指数
2
解决办法
6230
查看次数

如何使Python格式浮点数具有一定数量的有效数字?

我希望我的Python(2.4.3)输出数字具有某种格式.具体来说,如果数字是<= 6位有效数字的终止小数,则显示全部.但是,如果它有> 6位有效数字,则只输出6位有效数字.

"A"显示了Python如何编写浮点数."B"表示我希望他们写的方式.如何以这种方式使Python格式化我的数字?

A:
10188469102.605597
5.5657188485
3.539
22.1522612479
0
15.9638450858
0.284024
7.58096703786
24.3469152383

B:
1.01885e+10
5.56572
3.539
22.1523
0
15.9638
0.284024
7.58097
24.3469
Run Code Online (Sandbox Code Playgroud)

python string python-2.4 number-formatting

22
推荐指数
2
解决办法
3万
查看次数

如何在python中将293.4662543之类的浮点数转换为293.47?

如何缩短我得到的浮动结果?点后面我只需要2位数.对不起,我真的不知道如何用英语更好地解释这个......

谢谢

python number-formatting

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

21
推荐指数
2
解决办法
4万
查看次数