我正在使用此代码将字符串与浮点值连接:
//Make an object
var object = new THREE.Mesh( new THREE.BoxGeometry(2,2,2), new THREE.MeshBasicMaterial() );
//Move the object
object.position.set(new THREE.Vector3(5,0,0);
//Create a matrix
var matrix = new THREE.Matrix4();
//Rotate the matrix
matrix.makeRotationY(Math.PI / 2);
//rotate the object using the matrix
object.position.applyMatrix4(matrix);
但我收到此错误消息:
fr = channel.freqhz / 1000000
print ("fr type is", type(fr))
rx_channel = "<RxChannel>\n\
<IsDefault>1</IsDefault>\n\
<UsedForRX2>" + channel.usedforrx2 + "</UsedForRX2>\n\
<ChIndex>" + str(i) + "</ChIndex>\n\
<LC>" + str(channel.index) + "</LC>\n\
<SB>" + channel.subband + "</SB>\n\
<DTC>100</DTC>\n\
<Frequency>" + str(fr) + "</Frequency>\n\
<MinDR>0</MinDR>\n\
<MaxDR>5</MaxDR>\n\
</RxChannel>\n"
我不理解这个错误,因为我使用str()函数将float转换为str。
答案 0 :(得分:4)
str()
。 Python不能很好地处理多行操作和错误,并且会指向多行操作的最后一行(我假设它将最后一行中的所有字符串连接在一起,因此指向在str(fr)
)。
字段fr
甚至不是int
,而是float
,因此错误来自其他字段之一。我的猜测是channel.subband
,一个频道的子带将是一个整数。
rx_channel = "<RxChannel>\n<IsDefault>1</IsDefault>\n<UsedForRX2>" +
str(channel.usedforrx2) + "</UsedForRX2>\n<ChIndex>" +
str(i) + "</ChIndex>\n<LC>" +
str(channel.index) + "</LC>\n<SB>" +
str(channel.subband) + "</SB>\n<DTC>100</DTC>\n<Frequency>" +
str(fr) + "</Frequency>\n<MinDR>0</MinDR>\n<MaxDR>5</MaxDR>\n/RxChannel>\n"
答案 1 :(得分:2)
while read i; do eval printf "$i%.s0" {1..$(wc -L /tmp/HEX | cut -d ' ' -f1)} | head -c $(wc -L /tmp/HEX | cut -d ' ' -f1); echo; done < /tmp/HEX
和channel.usedforrx2
的值是多少?我怀疑其中一个是int而不是string。另外,为了使代码更具可读性,请考虑使用以下代码替换该语句:
channel.subband