我需要输出4个不同的浮点数到两个小数位.
这就是我所拥有的:
print '%.2f' % var1,'kg =','%.2f' % var2,'lb =','%.2f' % var3,'gal =','%.2f' % var4,'l'
Run Code Online (Sandbox Code Playgroud)
这是非常不洁净,看起来很糟糕.有没有办法在'%.2f'中进行任何浮动?
注意:使用Python 2.6.
MessageFormat.format和String.formatJDK 1.5有什么区别?
我只想要固定宽度的文本列,但字符串都填充正确,而不是左边!!?
sys.stdout.write("%6s %50s %25s\n" % (code, name, industry))
Run Code Online (Sandbox Code Playgroud)
产生
BGA BEGA CHEESE LIMITED Food Beverage & Tobacco
BHP BHP BILLITON LIMITED Materials
BGL BIGAIR GROUP LIMITED Telecommunication Services
BGG BLACKGOLD INTERNATIONAL HOLDINGS LIMITED Energy
Run Code Online (Sandbox Code Playgroud)
但我们想要
BGA BEGA CHEESE LIMITED Food Beverage & Tobacco
BHP BHP BILLITON LIMITED Materials
BGL BIGAIR GROUP LIMITED Telecommunication Services
BGG BLACKGOLD INTERNATIONAL HOLDINGS LIMITED Energy
Run Code Online (Sandbox Code Playgroud) 假设我想在前面显示带有可变数量的填充零的数字123.
例如,如果我想以5位数显示它,我会有数字= 5给我:
00123
Run Code Online (Sandbox Code Playgroud)
如果我想以6位数显示它,我会有数字= 6给出:
000123
Run Code Online (Sandbox Code Playgroud)
我将如何在Python中执行此操作?
有没有理由使用endl与cout当我可以只使用\n?我的C++书说要使用endl,但我不明白为什么.是\n不是广泛支持endl,或者我错过了什么?
对于具有千位分隔符的打印号,可以使用python格式字符串:
'{:,}'.format(1234567890)
Run Code Online (Sandbox Code Playgroud)
但是,如何指定我需要一个千位分隔符的空间?
有太多的争论,String.format很容易让人感到困惑.是否有更强大的格式化String的方法.像这样:
"This is #{number} string".format("number" -> 1)
Run Code Online (Sandbox Code Playgroud)
或者这是不可能的,因为类型问题(format需要采取Map [String,Any],我假设;不知道这是否会使事情变得更糟).
或者更好的方式是这样做:
val number = 1
<plain>This is { number } string</plain> text
Run Code Online (Sandbox Code Playgroud)
即使它污染名称空间?
编辑:
虽然在许多情况下可能会有一个简单的拉皮条,但我也在寻找与Python相同方向的东西format()(参见:http://docs.python.org/release/3.1.2/library/string.html#formatstrings)
我有类似的东西:
String text = "The user {0} has email address {1}."
// params = { "Robert", "myemailaddr@gmail.com" }
String msg = MessageFormat.format(text, params);
Run Code Online (Sandbox Code Playgroud)
这对我来说并不好,因为有时候我的翻译人员不确定{0}和{1}中的内容是什么,也可以在不担心args顺序的情况下重新编写消息.
我想用可读的名称而不是数字替换参数.像这样的东西:
String text = "The user {USERNAME} has email address {EMAILADDRESS}."
// Map map = new HashMap( ... [USERNAME="Robert", EMAILADDRESS="myemailaddr@gmail.com"]
String msg = MessageFormat.format(text, map);
Run Code Online (Sandbox Code Playgroud)
是否有捷径可寻?
谢谢!抢
我深陷在一个绑定订单的XAML堆栈元素中.
订单日期显示为例如"12/31/2008 12:00:00 AM".
我希望它显示为例如"31.12.2008".
我怎样才能做到这一点?我已经看到其他stackoverflow问题提到StringFormat,但他们使用多绑定的方式,我无法工作.
这是我想要的那种语法(这是伪代码),只需在需要的地方指定StringFormat,这有可能吗?
<StackPanel>
<ListView ItemsSource="{Binding Orders}">
<ListView.View>
<GridView>
<GridViewColumn
Header="Order ID"
DisplayMemberBinding="{Binding Path=OrderID}"
StringFormat="{}{1:dd.MM.yyyy}"/>
<GridViewColumn
Header="Order Date"
DisplayMemberBinding="{Binding Path=OrderDate}"/>
</GridView>
</ListView.View>
</ListView>
</StackPanel>
Run Code Online (Sandbox Code Playgroud) 愚蠢的问题,我想格式化一个整数,以便它出现在1000的分隔符(,),但也没有小数位,没有前导0.
到目前为止,我的尝试是:
String.Format("{0} {1}", 5, 5000); // 5 5000
String.Format("{0:n} {1:n}", 5, 5000); // 5.00 5,000.00
String.Format("{0:0,0} {1:0,0}", 5, 5000); // 05 5,000
Run Code Online (Sandbox Code Playgroud)
我之后的输出是:
5 5,000
Run Code Online (Sandbox Code Playgroud)
有什么明显的东西让我失踪吗?