Unity实用技能-格式化format文字

实用技能系列

  1. Unity实用技能-UI滑动条技能总结
  2. Unity实用技能-UI规范总结
  3. Unity实用技能-协作规范总结
  4. Unity实用技能-UI与粒子效果总结
  5. Unity实用技能-UI定位总结
  6. Unity实用技能-背景自适应文本

文章目录


前言

前段时间接触了许多和格式化有关的需求,总结一下


什么是format文字?

就是用既定API填充字符串中的格式符,如lua中的string.format("你好,还有%d分钟结束",2),其中的%d表示输入有符号整数,然后按格式填充一个字符串中的格式符


策划如何配格式化表?

  1. 实际上,程序经常需要分析策划的具体需求,考虑了各种情况后,指挥策划配成怎样的表,其中有些UI需求就包括格式化参数
  2. 一般来说纯显示的文本,只需要填%s即可,这样不管是小数还是整数都能兼容
  3. 有时候需要在UI上显示%,而我项目中使用的是lua,所以字符串中用%%即可表示一个%

对于无四舍五入保留一位小数且带单位,并且小数后首位为0要省略0,而且小于单位的数全部保留无小数,怎么实现格式化?

比如12345解析为带万,即显示为1.2万;10892解析为1万;7998解析为7998

  1. 首先对于超过一万和没超过一万的是两种情况
  2. 分类情况后,超过一万的则需要充分利用向下取整和区分整数部分和小数部分的思想,这样就能比较好地格式化,如下lua代码
lua 复制代码
function formatNumber(num)
    if num < 10000 then
        -- 使用 %g 自动处理整数和小数
        return string.format("%g", num)
    else
        -- 大数格式化
        local value = num / 10000
        local integerPart = math.floor(value)
        local firstDecimal = math.floor((num % 10000) / 1000)
        
        return firstDecimal == 0 and 
               string.format("%d万", integerPart) or 
               string.format("%.1f万", value)
    end
end

-- 测试
print(formatNumber(10))       -- 输出: 10
print(formatNumber(10.5))     -- 输出: 10.5
print(formatNumber(10.0))     -- 输出: 10
print(formatNumber(9999))     -- 输出: 9999
print(formatNumber(9999.9))   -- 输出: 9999.9
print(formatNumber(10000))    -- 输出: 1万
print(formatNumber(10500))    -- 输出: 1万
print(formatNumber(11000))    -- 输出: 1.1万

总结

目前遇到的格式化问题就是这样,之后有新的格式化问题也会继续在这里补充

相关推荐
雨季6665 小时前
Flutter 三端应用实战:OpenHarmony 简易“动态内边距调节器”交互模式深度解析
javascript·flutter·ui·交互·dart
天人合一peng5 小时前
Unity中button 和toggle监听事件函数有无参数
前端·unity·游戏引擎
_乐无6 小时前
Unity加载gly 点云 高斯泼溅渲染
unity
坚定信念,勇往无前7 小时前
unity发布BuildWebGL.wasm 加载过慢
unity·wasm
北极糊的狐8 小时前
光标放在引入的xxx组件行(import { xxx } from ‘element-ui‘;)出现标黄,显示报错:无法解析符号 ‘xxx‘ 解决办法
ui
子春一9 小时前
Flutter for OpenHarmony:构建一个 Flutter 习惯打卡应用,深入解析周视图交互、连续打卡逻辑与状态驱动 UI
flutter·ui·交互
我的xiaodoujiao10 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 44--将自动化测试结果自动推送至钉钉工作群聊
前端·python·测试工具·ui·pytest
avi911111 小时前
Unity Data Excel读取方法+踩坑记;和WPS Excel的一些命令
unity·游戏引擎·excel·wps·data
UI设计兰亭妙微12 小时前
UI 设计新范式:从国际案例看体验与商业的融合之道
人工智能·ui·b端设计
郁闷的网纹蟒12 小时前
虚幻5---第12部分---蒙太奇
开发语言·c++·ue5·游戏引擎·虚幻