【发布时间】:2018-11-07 14:38:11
【问题描述】:
如果我需要每秒(或更频繁地)更新存储值并将该值转换为要显示的字符串,同时还尝试使其更具可读性,那么处理此问题的最方便/高效的方法是什么?除了使用科学记数法。
现在我使用浮点数来存储我想要显示的值,然后我将该数字除以固定数量(一千、一百万、十亿..)并为其分配一个特定的后缀(K、M , B ..);但是我很确定这不是一种优雅的方式。有什么建议吗?
脚本差不多是这样的:
float x = 123456;
float y;
if (x >= 1000 && x < 1000000)
{
y = (x / 1000);
Console.WriteLine(y.ToString("0.000") + "K");
}
if (x >= 1000000 && x < 1000000000)
{
y = (x / 1000000);
Console.WriteLine(y.ToString("0.000") + "M");
}
if (x >= 1000000000 && x < 1000000000000)
{
y = (x / 1000000000);
Console.WriteLine(y.ToString("0.000") + "B");
}
返回 123,456K
【问题讨论】:
-
太基于意见了。
-
首先你应该有
if-else if-else语句,然后我希望它输出 123.456K。 -
考虑作为一个选项 MMO 数字格式
1KKK=1 000 000 000和电子1K5=1500(Ohm ;)。 -
@juharr -
ToString默认使用CurrentCulture。一些文化使用','作为小数分隔符。
标签: c# visual-studio unity3d numbers