GVKun编程网logo

如何对Python整数文字使用数字分隔符?(python整型数字)

14

对于如何对Python整数文字使用数字分隔符?感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍python整型数字,并为您提供关于C#7.0中的二进制文字和数字分隔符是什么?、C#中的数字分隔符

对于如何对Python整数文字使用数字分隔符?感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍python整型数字,并为您提供关于C# 7.0 中的二进制文字和数字分隔符是什么?、C# 中的数字分隔符 _、excel数字分隔符怎么用?excel数字分隔符设置方法、java – 如何在Android中将小空格作为数字分隔符?的有用信息。

本文目录一览:

如何对Python整数文字使用数字分隔符?(python整型数字)

如何对Python整数文字使用数字分隔符?(python整型数字)

有什么方法可以在Python代码中对数字进行分组以提高代码的可读性?我试过了''_这是其他一些语言的
数字分隔符
,但无济于事。

将左手边与右手边连接起来的怪异运算符也可以解决。

答案1

小编典典

几年后更新:Python
3.6现在支持PEP515,因此您可以使用_来提高浮点数和整数文字的可读性。

Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> 1_100011000>>>

作为历史参考,您可以查看严格定义python2.7,python3.5 …的词法分析。

对于python3.6.0a2及更早版本,您应该收到类似于以下内容的错误消息:

Python 3.6.0a2 (v3.6.0a2:378893423552, Jun 13 2016, 14:44:21) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> 1_000  File "<stdin>", line 1    1_000        ^SyntaxError: invalid syntax>>> amount = 10_000_000.0  File "<stdin>", line 1    amount = 10_000_000.0                      ^SyntaxError: invalid syntax

C# 7.0 中的二进制文字和数字分隔符是什么?

C# 7.0 中的二进制文字和数字分隔符是什么?

c# 7.0 中的二进制文字和数字分隔符是什么?

二进制文字 -

在 C# 7 之前,我们只能将十进制和十六进制值分配给 a 变量。

在 C# 7.0 中引入了二进制文字,它允许我们将二进制值传递给 变量。

数字分隔符 -

数字分隔符采用单个下划线 (_) 的形式。这个分隔符可以用 作为提高易读性的一种方法,可以在任何数字文字中使用。

二进制文字示例 -

示例

class Program{
   public static void Main(){
      var bn = 0b1000001;
      System.Console.WriteLine(bn.GetType());
      System.Console.WriteLine(Convert.ToChar(bn));
      Console.ReadLine();
   }
}
登录后复制

输出

System.Int32
A
登录后复制

数字分隔符示例 -

示例

class Program{
   public static void Main(){
      long Salary = 1_00_00_00_00_000;
      System.Console.WriteLine(Salary.GetType());
      System.Console.WriteLine(Salary);
      Console.ReadLine();
   }
}
登录后复制

输出

System.Int64
100000000000
登录后复制

以上就是C# 7.0 中的二进制文字和数字分隔符是什么?的详细内容,更多请关注php中文网其它相关文章!

C# 中的数字分隔符 _

C# 中的数字分隔符 _

编写 C# 代码时,我们时常会用到很大的数字,例如下面定义的变量:

   
   
   
const long loops = 50000000000;
您能快速读出这是多少吗?是不是还是会有很多人把光标定位到最后一位,然后按键盘上的向左键一个一个往上数:个、十、百、千、万、十万、百万、千万、亿、十亿、百亿、千亿……

数字的这种写法,严重影响了它的可读性。所以人们才会发明了诸如千分位之类的写法,上面的数字用千分位可以写作  50,000,000,000,这样子是不是可读性就强多了?不过这是西方人的写法。
如果按照我们中国人的习惯,可以写成  500,0000,0000,是不是一眼就可以读出来是 五百亿了?
那么问题来了,我们能不能在代码中这么写来增强数字的可读性呢?
答案是肯定的,不过要稍作改变 —— 把逗号换成下划线  _

   
   
   
const long loops = 500_0000_0000;
// 或者
const long loops = 50_000_000_000;
这是从 C# 7.0 开始支持的功能。它的用法和 Java 及 Python 中的用法是类似的。
当我们使用下划线  _ 作为数字分隔符时,可以把它添加在数字文本中 除了第一个字符和最后一个字符之外的任何位置。将下划线添加到长数字的不同的位置,就形成了不同的分组,不同的分组在不同的情景中可能会有不同的意义。比如我们在使用十进制、十六进制或二进制记数法声明数字时,可以加上下划线  _ 字符,使数字更易读懂。
我们来举个例子,定义下面一组数字:

   
   
   
int bin = 0b1001_1010_0001_0100; // 二进制表示
int hex1 = 0x64_95_ED; // 十六进制表示
int hex2 = 0x_64_95_ED; // 十六进制表示
int dec1 = 1_000_000; // 十进制
int dec2 = 100_0000; // 十进制
int weird = 1_2__3___4____5_____6______7_______8________9;
double real = 1_000.111_1e-5;
decimal d = 1_222_345;
上面的这些数字声明编译之后实际运行的代码是:

   
   
   
int bin = 39444;
int hex1 = 6591981;
int hex2 = 6591981;
int dec1 = 1000000;
int dec2 = 1000000;
int weird = 123456789;
double real = 0.010001111;
decimal d = 1222345m;
可以看出,虽然表示结果一样,但是适当地添加了下划线分隔符的写法,大大增加了我们读数的容易程度。
C# 中的任意数字都可以使用下划线分隔,两个连续数字字符之间允许出现多个下划线。 但是有些时候是要注意的,比如在小数和指数中使用时,不能出现在小数点(10_.0)的前后、指数字符(1.1e_1)的前后和类型说明符(10_f)的前面,等等……
我们来看一些错误的用例,下面的用法都是错误的:

   
   
   
double d1 = 1.1_e1; //不能出现在指数字符前后
float f1 = 10_f; //不能出现在类型说明符前面
double d2 = 10_.0; //不能出现在小数点前后
float pi1 = 3_.1415F; //不能出现在小数点前后
float pi2 = 3._1415F; //不能出现在小数点前后
int x1 = 52_; //不能出现在第一个字符和最后一个字符
int x2 = 0x52_; //不能出现在第一个字符和最后一个字符
int x3 = 0_x52; //不能出现在 0x 之间

总结

在定义较大的数字时,使用下划线  _ 作为分隔符,可以让较长的数字更具可读性。这个功能虽然很微不足道,但当你用到它的时候,易读性会让你的心情愉快很多,不是吗?
下划线分隔符  _ 在语义上对运行没有任何影响,因为它在编译的时候就被编译器忽略了。
作者 :技术译民
出品 :技术译站( https://ITTranslator.cn/

本文分享自微信公众号 - dotNET跨平台(opendotnet)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

excel数字分隔符怎么用?excel数字分隔符设置方法

excel数字分隔符怎么用?excel数字分隔符设置方法

excel中如何将某列数字设置为用-分隔的形式 这里用了两种方式来实现这种设置 第一种方式是通过单元格格式数字分列下的自定义实现 另一种方式是通过将数字列通过数据分列命令分列后 然后通过公式将分列后的内容与“-”符号合并再选择粘贴成数值形式

方法一:快捷键

1、鼠标左键点按A列列标签 选中该列后点按菜单栏格式 在弹出的菜单中点按单元格格式命令 可以用快捷键ctrl+1可以直接调用此命令

2、在弹出的单元格格式对话框中 点按数字选项卡 在左侧的分类下选择自定义 然后在右侧的类型输入框###-####-#### #代表的是一位数字 但是当首位是0时候这个0将不显示 所以如果以0开头的数字需要这样设置0##-####-####

3、这是经过自定义设置后的手机号码显示形式 在编辑栏中的数字和单元格中显示的数字是不相符的 可以知道 符号“-”只是格式 而不是实际的内容

方法二:

1、下面用第二种方法对该列进行设置 首先选中a列 点按a列列标 然后菜单栏下的数据命令 在弹出的菜单中点按分列命令

2、在弹出的文本分类向导对话框中的三步骤之一下的原始数据类型 合适的文本类型 点选固定宽度 然后点按下一步

3、在接下来的文本分列向导三步骤之 二中通过如箭头所在位置点按鼠标左键设置字段宽度 字段的宽度决定列分列后包含的内容长度 点选几下就会分为几个字段 如果点按的位置出现错误或者多点生成了多余的分列线 可以再次双击分列线即可删除该分列线 如果要移动分列线 可以鼠标左键按下分列线并左右拖动即可调整分列线位置 之后点按下一步

4、在文本分列向导三步骤之三中下面的数据预览中可以看到通过分隔符分出的三块数据首先点按前三个数字列最上面的列字段位置 然后点按右上方列数据格式中的常规 然后选择被分隔符分在中间的列字段 点按列数据格式中的文本 同样的方法设置被分隔符分在最右侧的列字段再次设置列数据格式为文本 最后点按完成按钮

5、如下图所示 刚才的一列数据已经分列成了三列数据 最左边的数字前三位前面的两个“-”不用去管 这只是显示出来的格式 中间和右侧的两列中分别存储这中间四位数字和右侧四位数字 此时选中d2单元格在单元格中输入=A2&-&B2&-&C2 然后点按回车 可以看到通过公式将三列中的数据用“-“连接起来了

6、通过将d2单元格中的公式复制到该列下方 这样该列中的数据将显示为前三列用“-”符号连接的数据了

7、点按d列列标签选中d列 然后点按右键 在弹出的菜单中选择复制命令 然后再次点按d列列标签选中该列 然后点按右键 在弹出的菜单中点按选择性粘贴命令

8、在弹出的选择性粘贴对话框中点按粘贴下的数值 然后点按确定

9、此时可以看到d列单元格中的内容已经由开始的公式=A2&-&B2&-&C2变成了数字 编辑栏也为数字

注意事项:

1、用公式 =A2&-&B2&-&C2 连接数据时注意要连接的文本需要用”“括起来

2、通过数据分列命令文本分列向导三步骤之三中一定要将通过分隔符分到中间和右侧的列字段设置数据格式为文本类型 否组如果该列以0开头的数字将消失.

java – 如何在Android中将小空格作为数字分隔符?

java – 如何在Android中将小空格作为数字分隔符?

为了让用户更容易知道确切的分数,我想用微小的空格分隔我的三个数字块(Unicode:SIX-PER-EM SPACE).

而不是1241234我想要1 241 234.

我试过了

DecimalFormat formatter = new DecimalFormat("# ### ### ### ###");
String score = formatter.format(getHighscore());

不幸的是,该代码给了我一个错误.如何将我的6个per-em空间放入我的数字?

错误:

FATAL EXCEPTION: main
Process: com.pairs.pairs, PID: 4296
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pairs.pairs/com.pairs.phoneme.TestingActivity}: android.view.InflateException: Binary XML file line #13: Binary XML file line #13: Error inflating class fragment
                                                                       at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2547)
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2613)
                                                                       at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1469)
                                                                       at android.os.Handler.dispatchMessage(Handler.java:111)
                                                                       at android.os.Looper.loop(Looper.java:207)
                                                                       at android.app.ActivityThread.main(ActivityThread.java:5695)
                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
                                                                    Caused by: android.view.InflateException: Binary XML file line #13: Binary XML file line #13: Error inflating class fragment
                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
                                                                       at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:406)
                                                                       at android.app.Activity.setContentView(Activity.java:2190)
                                                                       at com.pairs.phoneme.TestingActivity.portraitLayout(TestingActivity.java:125)
                                                                       at com.pairs.phoneme.TestingActivity.onCreate(TestingActivity.java:76)
                                                                       at android.app.Activity.performCreate(Activity.java:6270)
                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)
                                                                       at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2500)
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2613) 
                                                                       at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1469) 
                                                                       at android.os.Handler.dispatchMessage(Handler.java:111) 
                                                                       at android.os.Looper.loop(Looper.java:207) 
                                                                       at android.app.ActivityThread.main(ActivityThread.java:5695) 
                                                                       at java.lang.reflect.Method.invoke(Native Method) 
                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888) 
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749) 
                                                                    Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class fragment
                                                                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782)
                                                                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
                                                                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
                                                                       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                                                                       at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:406) 
                                                                       at android.app.Activity.setContentView(Activity.java:2190) 
                                                                       at com.pairs.phoneme.TestingActivity.portraitLayout(TestingActivity.java:125) 
                                                                       at com.pairs.phoneme.TestingActivity.onCreate(TestingActivity.java:76) 
                                                                       at android.app.Activity.performCreate(Activity.java:6270) 
                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113) 
                                                                       at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2500) 
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2613) 
                                                                       at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1469) 
                                                                       at android.os.Handler.dispatchMessage(Handler.java:111) 
                                                                       at android.os.Looper.loop(Looper.java:207) 
                                                                       at android.app.ActivityThread.main(ActivityThread.java:5695) 
                                                                       at java.lang.reflect.Method.invoke(Native Method) 
                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888) 
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749) 
                                                                    Caused by: java.lang.IllegalArgumentException: # ### ### ### ###
                                                                       at java.text.DecimalFormat.initNative(DecimalFormat.java:564)
                                                                       at java.text.DecimalFormat.<init>(DecimalFormat.java:557)
                                                                       at java.text.DecimalFormat.<init>(DecimalFormat.java:535)
                                                                       at com.pairs.phoneme.score.getHighscoreString(score.java:103)
                                                                       at com.pairs.phoneme.fragments.scoreAndTimeFragment.updatetopbarViews(scoreAndTimeFragment.java:44)
                                                                       at com.pairs.phoneme.fragments.scoreAndTimeFragment.onCreateView(scoreAndTimeFragment.java:59)
                                                                       at android.app.Fragment.performCreateView(Fragment.java:2236)
                                                                       at android.app.FragmentManagerImpl.movetoState(FragmentManager.java:954)
                                                                       at android.app.FragmentManagerImpl.movetoState(FragmentManager.java:1131)
                                                                       at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1233)
                                                                       at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2228)
                                                                       at android.app.FragmentController.onCreateView(FragmentController.java:98)
                                                                       at android.app.Activity.onCreateView(Activity.java:5579)
                                                                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:754)
                                                                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                                                                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
                                                                       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                                                                       at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:406) 
                                                                       at android.app.Activity.setContentView(Activity.java:2190) 
                                                                       at com.pairs.phoneme.TestingActivity.portraitLayout(TestingActivity.java:125) 
                                                                       at com.pairs.phoneme.TestingActivity.onCreate(TestingActivity.java:76) 
                                                                       at android.app.Activity.performCreate(Activity.java:6270) 
                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113) 
                                                                       at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2500) 
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2613) 
                                                                       at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1469) 
                                                                       at android.os.Handler.dispatchMessage(Handler.java:111) 
                                                                       at android.os.Looper.loop(Looper.java:207) 
                                                                       at android.app.ActivityThread.main(ActivityThread.java:5695) 
                                                                       at java.lang.reflect.Method.invoke(Native Method) 
                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888) 
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749) 

解决方法:

您收到一个例外:

Caused by: java.lang.IllegalArgumentException: # ### ### ### ### at
java.text.DecimalFormat.initNative(DecimalFormat.java:564)

我认为不可能将空格传递给此构造函数.

我有一个不同的代码,可以满足您的需求:

DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US);

DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
symbols.setGroupingSeparator('\u2008');

formatter.setDecimalFormatSymbols(symbols);

Log.e("Formatted: ", formatter.format(1241234));

关于如何对Python整数文字使用数字分隔符?python整型数字的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于C# 7.0 中的二进制文字和数字分隔符是什么?、C# 中的数字分隔符 _、excel数字分隔符怎么用?excel数字分隔符设置方法、java – 如何在Android中将小空格作为数字分隔符?的相关信息,请在本站寻找。

本文标签:

上一篇Python,安装matplotlib时出错(python安装matplotlib库出错)

下一篇无法安装Python库(python无法安装库怎么办)