设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 115|回复: 0
打印 上一主题 下一主题

[讨论] 数字位数多转为单位(ai生成的脚本)【补档]

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14392
在线时间
2127 小时
注册时间
2016-9-20
帖子
857
跳转到指定楼层
1
发表于 2025-3-7 22:21:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 ppspssss 于 2025-3-9 14:29 编辑

由于此贴为之前电脑有的草稿存档,被我找到出来,但注释的是没有存档,因而没注释 (原贴发贴日期2024.8.13)
使用为:百度AIhttps://chat.baidu.com/
那时还没有deepseek 是老版百度ai,现在问的话应该会不同

#1(国际英文常用单位,千k,百万m,十亿b,万亿(兆)t)
默设问ai是会用英文单位,中国单位则需加额外的问题 (我一开始就看上去感觉不对劲又不知哪里,很长时间才反应过来是英文单位)
1


#2 (输出错误有小数无法使用,好像是失败了因为不应该有powers_of_ten那个指定位数要再加额外问题再问AI (具体问什么忘了,纪录没了),请看第3个脚本才是能正常使用)
2

#3 (中国单位版本)

RUBY 代码复制
  1. __END__
  2. def format_number_with_unit(number)
  3.   units = ['', '万', '亿', '万亿']
  4.   exponent = 0
  5.   while number >= 10000
  6.     number /= 10000.0
  7.     exponent += 1
  8.   end
  9.  
  10.   # 为了避免小数点后的零过多,我们可以四舍五入到指定的小数位数
  11.   # 这里以四舍五入到小数点后一位为例
  12.   formatted_number = number#.round(1) #basic #低版本ruby无round(位数),因此不用
  13.  
  14.   #formatted_number = number #b
  15.  
  16.   # 如果数字小于1且大于0,我们可能想要以“0.x”的形式显示它,而不是“x”
  17.   # 但这取决于你的具体需求
  18.   if formatted_number < 1 && formatted_number > 0
  19.     formatted_number_str = formatted_number.to_s
  20.   else
  21.     # 对于整数部分,去掉尾随的.0
  22.     formatted_number = sprintf("%.3f", formatted_number)
  23.   # p formatted_number
  24.     formatted_number_str = formatted_number.to_s
  25.   end
  26.  
  27.   # 如果指数为0,即原数小于1000,则不添加单位
  28.   return formatted_number_str + (exponent > 0 ? units[exponent] : '')
  29. end
  30.  
  31. # 测试函数
  32. p format_number_with_unit(-88888888888)
  33. p format_number_with_unit(0.1111)
  34. p format_number_with_unit(1234)       # 输出: 1千
  35. p format_number_with_unit(12345)    # 输出: 1万
  36. p format_number_with_unit(123456)   # 输出: 12万
  37. p format_number_with_unit(1234567) # 输出: 123万
  38. p format_number_with_unit(12345678) # 输出: 1234万
  39. p format_number_with_unit(123456789) # 输出: 1亿
  40. p format_number_with_unit(1234567891) # 输出: 12亿
  41. p format_number_with_unit(12345678912) # 输出: 123亿
  42. p format_number_with_unit(123456789123) # 输出: 1234亿
  43. p format_number_with_unit(1234567891234) # 输出: 1万亿
  44. p format_number_with_unit(12345678912345) # 输出: 12万亿
  45. #p format_number_with_unit(1000000000) # 输出: 10亿 #basic
  46. #p format_number_with_unit(1000000000) # 输出: 1十亿
  47. #p format_number_with_unit(100000000000) # 输出: 100十亿
  48. #p format_number_with_unit(1000000000000) # 输出: 1万亿
  49. #p format_number_with_unit(1234567)    # 输出: 123.5万(四舍五入)#basic
  50. #p format_number_with_unit(1234567)    # 输出: 123万#b
  51. #p format_number_with_unit(500)        # 输出: 500(没有单位,因为小于1000)
我发的贴子大多未经整理是草稿抱歉
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-3-31 18:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表