我一直试图只得到一个浮点数的小数点值,这是我的观点
21.95 => .95
22.00 => .00
我尝试使用以下正则表达式
\。\ d {2}
我甚至有其他解决方案
number = 21.96.round(2)
precision = number - number.to_i
或
"." + number.to_s.split('.')[1]
但是我无法通过sprintf
找到它,这就是我想要的
答案 0 :(得分:2)
您只能使用模块功能获取小数部分。这是使用sprintf的解决方案
a = 1001.123123
sprintf("%.2f", a.modulo(1))
# prints 0.12
没有sprintf,
a = 1001.123123
puts a.modulo(1).round(2)
# prints 0.12
获取小数部分here的相关问题以及有关modulo function here的更多内容。
答案 1 :(得分:0)
我认为最好从char角度来解决这个问题。 首先将double转换为chars数组,然后检查每个字符是否为该字符的值为“。”。 接下来,您只需将以下字符放入字符串中,然后在sprintf中输出。