标签: digit-separator

将'decimal-mark'千位分隔符添加到数字中

我如何格式化10000001.000.000在Python?在哪里'.' 是十进制标记千位分隔符.

python format locale number-formatting digit-separator

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

用户定义的文字中是否允许使用C++ 14位分隔符?

当clang编译以下行时,g ++ 6.1会抱怨数字分隔符(请参阅Coliru上的实例):

auto time = 01'23s;
Run Code Online (Sandbox Code Playgroud)

根据C++ 14标准(N3796),哪个编译器(如果有)是正确的?

否则,允许数字分隔符(§2.14.2)只是<chrono>库的用户定义文字(§2.14.8)中的实现细节(§20.12.5.8)?恕我直言,它应该不是,因为这些文字是在unsigned long long参数上定义的.

我记得Howard Hinnant10'000s在他的CppCon 2016演讲"A <chrono>tutorial"(在他的演讲中大约42分钟)中作为一个例子.


(请注意,我不打算编码"1分23秒",这只是偶然的,因为八进制文字0123是64 + 16 + 3 == 83.为此我应该写

auto time = 1min + 23s;
Run Code Online (Sandbox Code Playgroud)

但是这种可能误导性的解释不是问题的一部分.)

c++ language-lawyer user-defined-literals c++14 digit-separator

42
推荐指数
3
解决办法
2410
查看次数

在十六进制或二进制数字的数字之前是否允许数字分隔符?

C++ 14将数字分隔符的概念引入文字中3'141'592'653'589.现在这是可读代码的一个很棒的功能,但我想知道它是否允许0x/0b -type文字的数字部分之前引用.在我看来,这:

unsigned int topThreeBits = 0b'1110'0000;
unsigned int hexNum       = 0x'dead'beef;
Run Code Online (Sandbox Code Playgroud)

没有前导分隔符的那个更可读:

unsigned int topThreeBits = 0b1110'0000;
unsigned int hexNum       = 0xdead'beef;
Run Code Online (Sandbox Code Playgroud)

因为它清楚地描述了数字的基数.

由于我还没有C++ 14编译器,我需要以这样或那样的方式确认它是否允许这样做.

我知道对于未加前缀的数字没有意义'123'456,特别是因为解析器不知道它是char变量还是数字文字.

但是,对于带前缀的文字,我看不出有关令牌在第一次'到达时的意图有什么混淆- 0x/0b已经说明它将是一个数字文字.

c++ c++14 digit-separator

7
推荐指数
1
解决办法
999
查看次数

如何将Python中的(语言环境)千位分隔符更改为阿拉伯语Unicode分隔符?

我想更改千位分隔符,以便{:,}.format(1234)在Python中使用不同的字符.分隔符应该是'\u066c'.

如何在不影响任何其他本地设置的情况下设置此项?

编辑:欢迎使用固定字体的任何其他建议的无效分隔符!

python arabic number-formatting python-3.x digit-separator

4
推荐指数
1
解决办法
488
查看次数

如何在千位分隔符上强制使用点?

我已经看到很多问题教导如何使用comma千位分隔符来做到这一点:

>>> format(1123000,',d')
'1,123,000'
Run Code Online (Sandbox Code Playgroud)

但如果我尝试使用 a dot,它就会变得疯狂:

>>> format(1123000,'.d')
ValueError: Format specifier missing precision
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的Python内置独立于区域设置的方法可以使其输出'1.123.000'而不是输出'1,123,000'

我已经在“将‘小数点’千位分隔符添加到数字” 上找到了这个答案,但它是手动执行的。它可以更简单,因为format(1123000,'.d')语言环境无关吗?或者Python没有内置它?

@Eugene Yamash使用itertools可以给你更多的灵活性:

>>> from itertools import zip_longest
>>> num = "1000000"
>>> sep = "."
>>> places = 3
>>> args = [iter(num[::-1])] * places
>>> sep.join("".join(x) for x in zip_longest(*args, fillvalue=""))[::-1]
'1.000.000'
Run Code Online (Sandbox Code Playgroud)

python format locale number-formatting digit-separator

4
推荐指数
1
解决办法
9247
查看次数

如何用点替换逗号,反之亦然

我有一个具有以下值的字符串:

$myValue = "1.099,90";
Run Code Online (Sandbox Code Playgroud)

我想用点替换逗号,反之亦然。像这样:

$myNewValue = "1,099.90";
Run Code Online (Sandbox Code Playgroud)

我知道肯定还有其他更好的方法来做到这一点,但我所能得到的是:

$myNewValue = str_replace(",","|",$myValue);
$myNewValue = str_replace(".",",",$myValue);
$myNewValue = str_replace("|",".",$myValue);
Run Code Online (Sandbox Code Playgroud)

这种方式看起来怪怪的,而且有一股难闻的味道!有更干净的方法吗?

php replace currency-formatting digit-separator

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