标签: string-formatting

Lua string.format选项

这似乎是一个愚蠢的问题,但是string.format中用于字符串替换的符号是什么?有人能指出一个如何使用它的简单例子吗?

string lua string-formatting

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

使用"X"进行十六进制格式化时的FormatException

我从HexConverter中获取了以下代码- 统一社区Wiki

string hex = color.r.ToString("X2") + color.g.ToString("X2") + color.b.ToString("X2");
Run Code Online (Sandbox Code Playgroud)

这给了我一个例外:

FormatException: The specified format 'X2' is invalid
Run Code Online (Sandbox Code Playgroud)

我尝试使用,"D"但即使这样也犯了错误.唯一有效的是"F格式化浮点数.

转到声明显示汇编浏览器中的mscorlib.dll/System/Single.ToString(字符串) - 到目前为止听起来不错.

谷歌搜索monodevelop字符串格式十六进制或类似的搜索字符串没有显示有关MonoDevelop限制的任何有趣的东西.

那么有什么准备,初始化,...之前我可以得到一个简单的十六进制值转换?

[更新] 颜色是Unity中的结构:

public struct Color
{
    public float r;
    public float g;
    public float b;
    // ...
Run Code Online (Sandbox Code Playgroud)

采取dtb的答案我终于使用它:

    int r = (int)(color.r * 256);
    int g = (int)(color.g * 256);
    int b = (int)(color.b * 256);
    string hex = string.Format ("{0:X2}{1:X2}{2:X2}", r, g, b);
Run Code Online (Sandbox Code Playgroud)

所以我错过了Color …

c# string-formatting monodevelop unity-game-engine

14
推荐指数
1
解决办法
5390
查看次数

statusstrip标签中的String.format()值在Win 7与Win XP上的显示方式不同

我使用以下代码在我的应用程序的状态栏中显示任务的已用时间.

public void DisplayDuration(TimeSpan duration)
{
    string formattedDuration;

    if (duration.TotalMilliseconds < 2000)
        formattedDuration = string.Format("{0} ms", duration.TotalMilliseconds);
    else if (duration.TotalSeconds < 60)
        formattedDuration = string.Format("{0} sec", duration.TotalSeconds);
    else
        formattedDuration = string.Format("{0} min", duration.TotalMinutes);

    this.TimingLabel.Text = formattedDuration;
}
Run Code Online (Sandbox Code Playgroud)

this.TimingLabel是winform页脚中statusStrip控件中的标签.

但是我在Windows XP和Windows 7上得到了完全不同的结果

Windows XP: 已过时格式化XP

Windows 7的 已过时间格式化7

为什么单位出现在Windows 7之前?

我已检查区域设置两台计算机都设置为美国,具有相同的日期时间格式.非常确定它是在两台机器上运行的相同代码.在一些非常简单的代码中,这是非常奇怪的行为.

作为后续跟进:我对我的代码进行了以下更改,但仍然存在同样的问题:

formattedDuration = string.Format("{0} ms", duration.TotalMilliseconds.ToString()); 
Run Code Online (Sandbox Code Playgroud)

c# windows-xp string-formatting windows-7

13
推荐指数
1
解决办法
765
查看次数

Stringformat连接数据绑定和资源的值

我想在我的窗口标题中连接我的viewmodel中的属性和来自资源文件的值.这是我没有来自资源的字符串工作:

Title="Binding Path=Description, StringFormat=Building: {0}}"
Run Code Online (Sandbox Code Playgroud)

现在我想删除"Building"字符串,并从我在其他地方使用的资源中输入一个值:

xmlns:res="clr-namespace:Project.View.Resources"
{res:Strings.TitleDescription}
Run Code Online (Sandbox Code Playgroud)

我怎样才能定义两者?我可以定义为{1}参数吗?

wpf binding concatenation string-formatting staticresource

13
推荐指数
2
解决办法
7143
查看次数

如何使用逗号和指定的精度数字格式化数字

问题出在Python 2.6上,这就是我们在生产中所拥有的.

我有这个要求用逗号格式化数字(如1234567.0987或1234567.0),以及小数点后指定的位数.因此,如果精度为3,则1234567.0987可能看起来像1,234,567.099.

我尝试使用Locale,正如许多问题的答案所示,问题是小数点后产生两位数,这对我的要求是不可接受的.

我尝试在其他地方搜索,但没有找到任何解决方案,最后我自己创建了一个方法:

def format_float(value, precision = 4):
    formatString = "%0." + str(precision) + "f"    
    str_val =  formatString % value
    first, second = str_val.split('.')
    first = int(first)
    group = []
    while True:
        result, mod = first / 1000, first % 1000
        group.append(str(mod))
        if result == 0:
            break
        first = result
    group.reverse() 
    return ','.join(group) + '.' + second
Run Code Online (Sandbox Code Playgroud)

我试图运行一些测试来测试该方法,它工作正常:

# default 4 digits precision
assert format_float(1234567890.0876543) == '1,234,567,890.0877'
assert format_float(1.2) == '1.2000'
assert format_float(1234) == '1,234.0000'
assert format_float(0) == …
Run Code Online (Sandbox Code Playgroud)

python string-formatting number-formatting

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

调用ToString("YYYY-mm-dd")会导致错误的日期格式

我有一个构造函数,它接受一个DateTime对象:

public Report(DateTime date, string start = "0", string end = "0")
{
    Logger.Info("Creating a new Report...");

    StartTime = start;
    EndTime = end;
    Date = date.ToString("YYYY-mm-dd");

    SetStartEndTimes();

    Logger.Info("Report Created");
}
Run Code Online (Sandbox Code Playgroud)

现在,这只是3天前工作正常.但是,我休息后今天回来,这是我看到的结果:

在此输入图像描述

如您所见,传入的日期是正确的.但是,在格式之后,它不是.再次,这在我休息之前有效.我回来了,我明白了.我错过了什么吗?为什么从开始工作后它的格式如此错误?

编辑

多谢你们.混乱的部分正在查看以前版本的源代码控制,这很有用.或许我想象它有效.我不知道.但这种方式已经持续了大约3个月.

c# string-formatting

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

python2.6中没有索引的字符串格式

我有成千上万行的python代码有python2.7 +样式字符串格式化(例如{} s中没有索引)

"{} {}".format('foo', 'bar')
Run Code Online (Sandbox Code Playgroud)

我需要在python2.6下运行此代码,python2.6 需要索引.

我想知道是否有人知道一个无痛的方式允许python2.6运行此代码.如果有一个"来自__future__ import blah"解决问题,那就太棒了.我没有看到一个.这些方面的东西将是我的第一选择.

一个遥远的第二个是一些脚本可以自动化添加索引的过程,至少在明显的情况下:

"{0} {1}".format('foo', 'bar')
Run Code Online (Sandbox Code Playgroud)

python backport string-formatting python-2.6

13
推荐指数
1
解决办法
721
查看次数

Python argparse错误,帮助字符串中包含'%'

我有一个包含'%'的默认值,我也将其插入到我的参数的帮助文档中.例如:

default = "5% foo"
animrender_group.add_argument(
    "--foo",
    default=default,
    help="Foo amount. Default: %s" % default,
)
args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)

parse_args()上的Argparse错误

[snip]
    args = parser.parse_args()
[snip]"../python2.5/site-packages/argparse.py", line 622, in _expand_help
    return self._get_help_string(action) % params
ValueError: unsupported format character 'O' (0x4f) at index 83
Run Code Online (Sandbox Code Playgroud)

python string-formatting argparse percent-encoding

13
推荐指数
3
解决办法
2340
查看次数

用于解压缩具有大括号抑制的列表的f-string语法

我一直在使用新的f-string格式检查我的一些字符串格式选项.我经常需要解压缩列表和其他未知长度的迭代.目前我使用以下...

>>> a = [1, 'a', 3, 'b']
>>> ("unpack a list: " + " {} "*len(a)).format(*a)
'unpack a list:  1  a  3  b '
Run Code Online (Sandbox Code Playgroud)

这虽然有点麻烦,但使用3.6之前的格式表示法.考虑到运行时字符串连接,新的f-string格式选项很有意思.这是我遇到问题的{}数量的复制.在我之前的例子中,我只是创建了必要的结构并在.format()部分中解压缩.

尝试这样做产生了一个有效的变体,但是,我不能将两个花括号放在一起,或者它不能解包...

(1)

>>> 'unpack a list'  f' {{*a}}'
'unpack a list {*a}'
Run Code Online (Sandbox Code Playgroud)

按下,我在内部{}对周围插入了一个空格.这是一个适度的改进,但是开始和结束{,}存在.

(2)

>>> 'unpack a list'  f' { {*a} }'
"unpack a list {1, 3, 'a', 'b'}"
Run Code Online (Sandbox Code Playgroud)

将变体拼接成一个封闭的f-string使外观和语法更好,因为评估显然是从左到右.然而,这仍然留下了封闭的花括号.

(3)

>>> f'unpack a list { {*a} }'
"unpack a list {1, 3, 'a', 'b'}"
Run Code Online (Sandbox Code Playgroud)

也许,我正在过度思考整个过程,并希望采用某种形式的自动拆包.这只是产生了列表表示,大括号被[]替换.
(4)

>>> f'unpack a list {a}'
"unpack a …
Run Code Online (Sandbox Code Playgroud)

python string-formatting python-3.x python-3.6 f-string

13
推荐指数
2
解决办法
7544
查看次数

如何在 Python 中格式化为 n 个小数位

我有一个变量n,我想打印n个小数位。

import math
n = 5
print(f"{math.pi:.nf}")
Run Code Online (Sandbox Code Playgroud)

ValueError: Format specifier missing precision

这行不通,但是怎么做呢?

python string-formatting

13
推荐指数
2
解决办法
278
查看次数