|
蓝森林 http://www.lslnet.com 2006年6月26日 11:18
:shock: 请教 数字如何加入豆号 ?
:shock:
whta=1234567890
变量whta的值如何量成 1,234,567,890.00
要在原来的基础上加入"豆号"和".00" 我写的123456789 是举
有可能是正他的正负整数
谁会啊,谢谢了! |
:shock: 请教 数字如何加入豆号 ?
用awk的substr函数 |
:shock: 请教 数字如何加入豆号 ?
具体怎么写啊!!!! |
:shock: 请教 数字如何加入豆号 ?
我写了一个玩,;)
[code]
#!/bin/ksh
#
#假设输入的全是整数
function _do {
rev|sed 's/.../&,/g'|rev
}
if (($#==1))&&echo $1|grep -oq '^[-|0-9]\{1,\}$';then
if echo $1|grep -q ^-;then
echo -$(echo $1|cut -c2-|_do|sed 's/,//1').00
else
echo $(echo $1|_do|sed 's/^,//').00
fi
else
echo "Error!";exit 1
fi
[/code]
test:
--> |
:shock: 请教 数字如何加入豆号 ?
如果不要输入,用上赋过值的"whta " 就用这个变量怎么写啊,,,,,!!!???? |
:shock: 请教 数字如何加入豆号 ?
我也写了一个好玩的:)
[code]
[kennyyu@haha shellTestRoom]$ test=1234123412341234;testrev=`echo ${test}|rev`;head="00.";length=${#test};while [ ! -z ${testrev} ] ;do head=${head}"$(echo ${testrev}|cut -b-3),";testrev=${testrev:3}; done ;echo ${head}|rev|cut -b2-
1,234,123,412,341,234.00
[/code] |
:shock: 请教 数字如何加入豆号 ?
| :shock: 请教 数字如何加入豆号 ?
是的我会看的,
[kennyyu@haha shellTestRoom]$ test=1234123412341234;testrev=`echo ${test}|rev`;head="00.";length=${#test};while [ ! -z ${testrev} ] ;do head=${head}"$(echo ${testrev}|cut -b-3),";testrev=${testrev:3}; done ;echo ${head}|rev|cut -b2-
1,234,123,412,341,234.00
在问
怎么把上面的这个数1,234,123,412,341,234.00 放到变量wht中啊!!? |
:shock: 请教 数字如何加入豆号 ?
-->
让烈火兄见笑了 :oops:
我的那段代码在处理前需要判断一下是否为负数,呵呵,为负数的要做些处理 :oops: :em06: |
:shock: 请教 数字如何加入豆号 ?
-->
:em06: :em06: |
:shock: 请教 数字如何加入豆号 ?
--> |
:shock: 请教 数字如何加入豆号 ?
| :shock: 请教 数字如何加入豆号 ?
是啊,看的我好累啊! |
:shock: 请教 数字如何加入豆号 ?
寂寞烈火兄 你才写的那个 如果
如果不要输入,用上赋过值的"whta "
最后输入的数值赋给wht 怎么做啊 |
:shock: 请教 数字如何加入豆号 ?
whta=1234567890
echo $whta|rev|sed 's/.../&,/g'|rev
P.S:变量赋值是shell最基本的,建议你还是先看看置顶的shell十三问再说吧 ;) |
:shock: 请教 数字如何加入豆号 ?
[code]echo $whta|rev|nawk '{for(i=1;;i+=3){a=substr($0,i,3);b=b a;if(length(a)<3){break};b=b ","}}END{print b}'|sed -e 's/ ,//;s/, //'|rev|awk '{print substr($0,1,length($0)-1)".00"}'[/code]
写了一个超长一行版,里面用了好多笨办法, :em16: |
:shock: 请教 数字如何加入豆号 ?
sed1line里面不是有一个很强的加逗号的例子吗?
sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta' |
:shock: 请教 数字如何加入豆号 ?
what=${what}.00
echo $what | sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta' |
:shock: 请教 数字如何加入豆号 ?
-->
不好意思 :oops:
[code][kennyyu@haha FORMAT]$ more format.sh
#! /bin/sh
if [ -z $1 ]
then
whta=-123
else
whta=$1
fi
testrev=`echo ${whta}|rev`
head="00."
length=${#test}
while [ ! -z ${testrev} ]
do
head="${head}${testrev:0:3},"
testrev=${testrev:3}
done
whta=$(echo ${head}|rev|cut -b2-)
[ $(echo ${whta}|cut -b-2) = "-," ]&&whta="-"${whta:2}
echo ${whta}[/code] |
:shock: 请教 数字如何加入豆号 ?
我运行format.sh
不行啊,出
format.sh : test : argnment expected |
| |