发新话题
打印

用shell如何格式化输出实数?

用shell如何格式化输出实数?

我想把计算的结果按格式输出到文本文件中,用bc或者printf应该怎么设置格式?我试了了一下都没成功,请高人指点:

比如想把 133.1234 输出为4位整数,3位小数,应该怎么办?

还有如何控制指数的输出格式?

-2.73e-01
-2.73e-001
-2.78e-018





[ 本帖最后由 flh81 于 2007-8-6 17:04 编辑 ]      

TOP

133.1234 输出为 4 位整数 3 位小数? 不理解

你想如何控制指数的输出格式?      
'
◆ 发帖时请【突出主题】, 以便您的问题能够及时得到回复
◆ 发帖时请将您的【代码】或者【脚本】写在 [code] 和 [/code] 中间

TOP

reply

建议你还是看看printf函数的格式说明吧,shell下的 printf也是一样的      

TOP

可能是输出7位,4位整数3位小数吧      

TOP

我的意思是输入为123.1236,想输出为0123.124.
输入数据有好多行,但是长度不一样,例如:
123.3234
2334.34567
12.032
输出的格式怎么能变成下面的格式
0123.323
2334.346
0012.032

还有shell里面如何控制指数的输出格式?
-2.73e-001
怎么控制e前面和e后面的数值所占的位数?


谢谢你们的帮助!!

[ 本帖最后由 flh81 于 2007-8-20 22:45 编辑 ]      

TOP

。。。

收到了有个回复这个主题的邮件
我还兴奋了一下呢      
面包会有的 女人也会有的
_______________________

TOP

FYI:
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30959 0]
; printf '%08.3f\n%08.3f\n%08.3f\n' 123.3234 2334.34567 12.032
0123.323
2334.346
0012.032
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30959 0]
; bye
      
'
◆ 发帖时请【突出主题】, 以便您的问题能够及时得到回复
◆ 发帖时请将您的【代码】或者【脚本】写在 [code] 和 [/code] 中间

TOP

俺觉得没有办法控制科学计数法格式中 E 前后的位数       
'
◆ 发帖时请【突出主题】, 以便您的问题能够及时得到回复
◆ 发帖时请将您的【代码】或者【脚本】写在 [code] 和 [/code] 中间

TOP

先谢了,我再琢磨一下      

TOP

发新话题